Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(925)

Unified Diff: pkg/dev_compiler/lib/src/compiler/code_generator.dart

Issue 2423313002: Emulate compiling a source file in the context of an existing library. Add --debugger-compile flag … (Closed)
Patch Set: Code review comments. Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/dev_compiler/lib/js/legacy/dart_sdk.js ('k') | pkg/dev_compiler/lib/src/compiler/compiler.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/dev_compiler/lib/src/compiler/code_generator.dart
diff --git a/pkg/dev_compiler/lib/src/compiler/code_generator.dart b/pkg/dev_compiler/lib/src/compiler/code_generator.dart
index 9cbc9ec0944963f19f5db971f50c5027fa1cbfb1..c673e0f91b2c825747328d52a2a8208d6e1939e8 100644
--- a/pkg/dev_compiler/lib/src/compiler/code_generator.dart
+++ b/pkg/dev_compiler/lib/src/compiler/code_generator.dart
@@ -625,7 +625,7 @@ class CodeGenerator extends GeneralizingAstVisitor
if (node.type == null) {
// TODO(jmesserly): if the type fails to resolve, should we generate code
// that throws instead?
- assert(options.unsafeForceCompile);
+ assert(options.unsafeForceCompile || options.replCompile);
return js.call('dart.dynamic');
}
return _emitType(node.type);
@@ -3065,8 +3065,12 @@ class CodeGenerator extends GeneralizingAstVisitor
[l, l, name, name, _visit(rhs)])
]);
}
- return js.call('dart.dput(#, #, #)',
- [_visit(target), _emitMemberName(id.name), _visit(rhs)]);
+ return js.call('dart.#(#, #, #)', [
+ _emitDynamicOperationName('dput'),
+ _visit(target),
+ _emitMemberName(id.name),
+ _visit(rhs)
+ ]);
}
var accessor = id.staticElement;
@@ -3351,10 +3355,16 @@ class CodeGenerator extends GeneralizingAstVisitor
return new JS.Call(jsTarget, args);
}
if (typeArgs != null) {
- return js.call('dart.dgsend(#, #, #, #)',
- [jsTarget, new JS.ArrayInitializer(typeArgs), memberName, args]);
+ return js.call('dart.#(#, #, #, #)', [
+ _emitDynamicOperationName('dgsend'),
+ jsTarget,
+ new JS.ArrayInitializer(typeArgs),
+ memberName,
+ args
+ ]);
} else {
- return js.call('dart.dsend(#, #, #)', [jsTarget, memberName, args]);
+ return js.call('dart.#(#, #, #)',
+ [_emitDynamicOperationName('dsend'), jsTarget, memberName, args]);
}
}
if (_isObjectMemberCall(target, name)) {
@@ -4635,6 +4645,9 @@ class CodeGenerator extends GeneralizingAstVisitor
return _emitFunctionTypeArguments(type, instantiated);
}
+ JS.LiteralString _emitDynamicOperationName(String name) =>
+ js.string(options.replCompile ? '${name}Repl' : name);
+
JS.Expression _emitAccessInternal(Expression target, Element member,
String memberName, List<JS.Expression> typeArgs) {
bool isStatic = member is ClassMemberElement && member.isStatic;
@@ -4649,7 +4662,8 @@ class CodeGenerator extends GeneralizingAstVisitor
[l, l, name, l, name])
]);
}
- return js.call('dart.dload(#, #)', [_visit(target), name]);
+ return js.call('dart.#(#, #)',
+ [_emitDynamicOperationName('dload'), _visit(target), name]);
}
var jsTarget = _visit(target);
« no previous file with comments | « pkg/dev_compiler/lib/js/legacy/dart_sdk.js ('k') | pkg/dev_compiler/lib/src/compiler/compiler.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698