Files
sdk/runtime/lib/developer.dart
T
John McCutchan 7052bd6bed Rework service extensions to be safe
- When scheduling a service extension to be invoked, store the closure in an array held in the isolate.
- At the tail of IsolateMessageHandler::HandleMessage, invoke all pending service extension closures.

R=iposva@google.com, turnidge@google.com

Review URL: https://codereview.chromium.org//1299493007 .
2015-08-27 11:23:39 -07:00

58 lines
1.6 KiB
Dart

// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
patch bool debugger({bool when: true,
String message}) native "Developer_debugger";
patch Object inspect(Object object) native "Developer_inspect";
patch void log(String message,
{DateTime time,
int sequenceNumber,
int level: 0,
String name: '',
Zone zone,
Object error,
StackTrace stackTrace}) {
if (message is! String) {
throw new ArgumentError(message, "message", "Must be a String");
}
if (time == null) {
time = new DateTime.now();
}
if (time is! DateTime) {
throw new ArgumentError(time, "time", "Must be a DateTime");
}
if (sequenceNumber == null) {
sequenceNumber = _nextSequenceNumber++;
} else {
_nextSequenceNumber = sequenceNumber + 1;
}
_log(message,
time.millisecondsSinceEpoch,
sequenceNumber,
level,
name,
zone,
error,
stackTrace);
}
int _nextSequenceNumber = 0;
_log(String message,
int timestamp,
int sequenceNumber,
int level,
String name,
Zone zone,
Object error,
StackTrace stackTrace) native "Developer_log";
patch ServiceExtensionHandler _lookupExtension(String method)
native "Developer_lookupExtension";
patch _registerExtension(String method, ServiceExtensionHandler handler)
native "Developer_registerExtension";