| Index: pkg/compiler/lib/src/compiler.dart
|
| diff --git a/pkg/compiler/lib/src/compiler.dart b/pkg/compiler/lib/src/compiler.dart
|
| index 36f8a6fe23a4127b6c746168d25354931ab71795..c26087dc10523cce49a3b4959a4d68b82c995ee3 100644
|
| --- a/pkg/compiler/lib/src/compiler.dart
|
| +++ b/pkg/compiler/lib/src/compiler.dart
|
| @@ -361,14 +361,13 @@ abstract class Backend {
|
| */
|
| void registerRuntimeType(Enqueuer enqueuer, Registry registry) {}
|
|
|
| - /// Call this to register a `noSuchMethod` implementation.
|
| - void registerNoSuchMethod(Element noSuchMethodElement) {}
|
| -
|
| - /// Call this method to enable support for `noSuchMethod`.
|
| - void enableNoSuchMethod(Enqueuer enqueuer) {}
|
| -
|
| - /// Returns whether or not `noSuchMethod` support has been enabled.
|
| - bool get enabledNoSuchMethod => false;
|
| + /**
|
| + * Call this method to enable [noSuchMethod] handling in the
|
| + * backend.
|
| + */
|
| + void enableNoSuchMethod(Element context, Enqueuer enqueuer) {
|
| + enqueuer.registerInvocation(compiler.noSuchMethodSelector);
|
| + }
|
|
|
| /// Call this method to enable support for isolates.
|
| void enableIsolateSupport(Enqueuer enqueuer) {}
|
| @@ -950,6 +949,7 @@ abstract class Compiler implements DiagnosticListener {
|
| final Selector symbolValidatedConstructorSelector = new Selector.call(
|
| 'validated', null, 1);
|
|
|
| + bool enabledNoSuchMethod = false;
|
| bool enabledRuntimeType = false;
|
| bool enabledFunctionApply = false;
|
| bool enabledInvokeOn = false;
|
| @@ -1626,6 +1626,9 @@ abstract class Compiler implements DiagnosticListener {
|
| if (hasIsolateSupport) {
|
| backend.enableIsolateSupport(enqueuer.codegen);
|
| }
|
| + if (enabledNoSuchMethod) {
|
| + backend.enableNoSuchMethod(null, enqueuer.codegen);
|
| + }
|
| if (compileAll) {
|
| libraryLoader.libraries.forEach((LibraryElement library) {
|
| fullyEnqueueLibrary(library, enqueuer.codegen);
|
|
|