| Index: dart/sdk/lib/_internal/compiler/implementation/ssa/builder.dart
|
| diff --git a/dart/sdk/lib/_internal/compiler/implementation/ssa/builder.dart b/dart/sdk/lib/_internal/compiler/implementation/ssa/builder.dart
|
| index 2afe47ab02aa27fb6cec379acfc621d7ca99cd3b..db516033b1b8d9c0afd3e5ce5bf560e7c7f5f2e0 100644
|
| --- a/dart/sdk/lib/_internal/compiler/implementation/ssa/builder.dart
|
| +++ b/dart/sdk/lib/_internal/compiler/implementation/ssa/builder.dart
|
| @@ -2969,10 +2969,10 @@ class SsaBuilder extends ResolvedVisitor implements Visitor {
|
| return;
|
| }
|
|
|
| - void handleForeignJsCurrentIsolate(Send node) {
|
| + void handleForeignJsCurrentIsolateContext(Send node) {
|
| if (!node.arguments.isEmpty) {
|
| compiler.cancel(
|
| - 'Too many arguments to JS_CURRENT_ISOLATE', node: node);
|
| + 'Too many arguments to JS_CURRENT_ISOLATE_CONTEXT', node: node);
|
| }
|
|
|
| if (!compiler.hasIsolateSupport()) {
|
| @@ -3091,13 +3091,22 @@ class SsaBuilder extends ResolvedVisitor implements Visitor {
|
| <HInstruction>[]));
|
| }
|
|
|
| + void handleForeignJsCurrentIsolate(Send node) {
|
| + if (!node.arguments.isEmpty) {
|
| + compiler.cancel('Too many arguments', node: node.argumentsNode);
|
| + }
|
| + push(new HForeign(new js.LiteralString(backend.namer.CURRENT_ISOLATE),
|
| + HType.UNKNOWN,
|
| + <HInstruction>[]));
|
| + }
|
| +
|
| visitForeignSend(Send node) {
|
| Selector selector = elements.getSelector(node);
|
| SourceString name = selector.name;
|
| if (name == const SourceString('JS')) {
|
| handleForeignJs(node);
|
| - } else if (name == const SourceString('JS_CURRENT_ISOLATE')) {
|
| - handleForeignJsCurrentIsolate(node);
|
| + } else if (name == const SourceString('JS_CURRENT_ISOLATE_CONTEXT')) {
|
| + handleForeignJsCurrentIsolateContext(node);
|
| } else if (name == const SourceString('JS_CALL_IN_ISOLATE')) {
|
| handleForeignJsCallInIsolate(node);
|
| } else if (name == const SourceString('DART_CLOSURE_TO_JS')) {
|
| @@ -3114,6 +3123,8 @@ class SsaBuilder extends ResolvedVisitor implements Visitor {
|
| stack.add(addConstantString(node, backend.namer.operatorAsPrefix()));
|
| } else if (name == const SourceString('JS_DART_OBJECT_CONSTRUCTOR')) {
|
| handleForeignDartObjectJsConstructorFunction(node);
|
| + } else if (name == const SourceString('JS_CURRENT_ISOLATE')) {
|
| + handleForeignJsCurrentIsolate(node);
|
| } else {
|
| throw "Unknown foreign: ${selector}";
|
| }
|
|
|