| Index: dart/sdk/lib/_internal/compiler/implementation/js_backend/backend.dart
|
| diff --git a/dart/sdk/lib/_internal/compiler/implementation/js_backend/backend.dart b/dart/sdk/lib/_internal/compiler/implementation/js_backend/backend.dart
|
| index 7627c616995c244e97ff9de83a03247cfd232386..09093d0b68f3c4b9c08068c85f8ff51683ba536a 100644
|
| --- a/dart/sdk/lib/_internal/compiler/implementation/js_backend/backend.dart
|
| +++ b/dart/sdk/lib/_internal/compiler/implementation/js_backend/backend.dart
|
| @@ -800,6 +800,11 @@ class JavaScriptBackend extends Backend {
|
| enqueueClass(enqueuer, jsPlainJavaScriptObjectClass, elements);
|
| }
|
| }
|
| + if (cls == compiler.closureClass) {
|
| + enqueue(enqueuer,
|
| + compiler.findHelper('closureFromTearOff'),
|
| + elements);
|
| + }
|
| ClassElement result = null;
|
| if (cls == compiler.stringClass || cls == jsStringClass) {
|
| addInterceptors(jsStringClass, enqueuer, elements);
|
| @@ -978,6 +983,7 @@ class JavaScriptBackend extends Backend {
|
| }
|
|
|
| void registerIsCheck(DartType type, Enqueuer world, TreeElements elements) {
|
| + enqueueInResolution(getThrowRuntimeError(), elements);
|
| type = type.unalias(compiler);
|
| enqueueClass(world, compiler.boolClass, elements);
|
| bool inCheckedMode = compiler.enableTypeAssertions;
|
| @@ -1035,6 +1041,7 @@ class JavaScriptBackend extends Backend {
|
| }
|
|
|
| void registerAsCheck(DartType type, Enqueuer world, TreeElements elements) {
|
| + enqueueInResolution(getThrowRuntimeError(), elements);
|
| type = type.unalias(compiler);
|
| if (!world.isResolutionQueue) {
|
| // All helpers are added to resolution queue in enqueueHelpers. These
|
| @@ -1712,6 +1719,8 @@ class JavaScriptBackend extends Backend {
|
| * system.
|
| */
|
| bool isAccessibleByReflection(Element element) {
|
| + // TODO(ahe): This isn't sufficient: simply importing dart:mirrors
|
| + // causes hasInsufficientMirrorsUsed to become true.
|
| if (hasInsufficientMirrorsUsed) return true;
|
| return isNeededForReflection(element);
|
| }
|
|
|