| Index: pkg/compiler/lib/src/js_emitter/program_builder/program_builder.dart
|
| diff --git a/pkg/compiler/lib/src/js_emitter/program_builder/program_builder.dart b/pkg/compiler/lib/src/js_emitter/program_builder/program_builder.dart
|
| index 11e13f97d25adb17ca96c3025787e645203fc531..5f5543926f33ac58d5bc4687c708fa304cfcba9e 100644
|
| --- a/pkg/compiler/lib/src/js_emitter/program_builder/program_builder.dart
|
| +++ b/pkg/compiler/lib/src/js_emitter/program_builder/program_builder.dart
|
| @@ -45,6 +45,8 @@ import '../../elements/elements.dart' show
|
| TypedefElement,
|
| VariableElement;
|
| import '../../js/js.dart' as js;
|
| +import '../../js_backend/backend_helpers.dart' show
|
| + BackendHelpers;
|
| import '../../js_backend/js_backend.dart' show
|
| Namer,
|
| JavaScriptBackend,
|
| @@ -94,6 +96,7 @@ class ProgramBuilder {
|
| this._registry = new Registry(compiler);
|
|
|
| JavaScriptBackend get backend => _compiler.backend;
|
| + BackendHelpers get helpers => backend.helpers;
|
| Universe get universe => _compiler.codegenWorld;
|
|
|
| /// Mapping from [ClassElement] to constructed [Class]. We need this to
|
| @@ -365,7 +368,7 @@ class ProgramBuilder {
|
| // a regular getter that returns a JavaScript function and tearing off
|
| // a method in the case where there exist multiple JavaScript classes
|
| // that conflict on whether the member is a getter or a method.
|
| - var interceptorClass = _classes[backend.jsJavaScriptObjectClass];
|
| + var interceptorClass = _classes[helpers.jsJavaScriptObjectClass];
|
| var stubNames = new Set<String>();
|
| librariesMap.forEach((LibraryElement library, List<Element> elements) {
|
| for (Element e in elements) {
|
| @@ -449,7 +452,7 @@ class ProgramBuilder {
|
| .map(_buildStaticMethod)
|
| .toList();
|
|
|
| - if (library == backend.interceptorsLibrary) {
|
| + if (library == helpers.interceptorsLibrary) {
|
| statics.addAll(_generateGetInterceptorMethods());
|
| statics.addAll(_generateOneShotInterceptors());
|
| }
|
| @@ -544,7 +547,7 @@ class ProgramBuilder {
|
| });
|
| }
|
|
|
| - if (element == backend.closureClass) {
|
| + if (element == helpers.closureClass) {
|
| // We add a special getter here to allow for tearing off a closure from
|
| // itself.
|
| js.Name name = namer.getterForMember(Names.call);
|
| @@ -574,7 +577,7 @@ class ProgramBuilder {
|
| List<StubMethod> isChecks = <StubMethod>[];
|
| if (backend.isJsInterop(element)) {
|
| typeTests.properties.forEach((js.Name name, js.Node code) {
|
| - _classes[backend.jsInterceptorClass].isChecks.add(
|
| + _classes[helpers.jsInterceptorClass].isChecks.add(
|
| _buildStubMethod(name, code));
|
| });
|
| } else {
|
| @@ -814,7 +817,7 @@ class ProgramBuilder {
|
| InterceptorStubGenerator stubGenerator =
|
| new InterceptorStubGenerator(_compiler, namer, backend);
|
|
|
| - String holderName = namer.globalObjectFor(backend.interceptorsLibrary);
|
| + String holderName = namer.globalObjectFor(helpers.interceptorsLibrary);
|
| // TODO(floitsch): we shouldn't update the registry in the middle of
|
| // generating the interceptor methods.
|
| Holder holder = _registry.registerHolder(holderName);
|
| @@ -879,7 +882,7 @@ class ProgramBuilder {
|
| InterceptorStubGenerator stubGenerator =
|
| new InterceptorStubGenerator(_compiler, namer, backend);
|
|
|
| - String holderName = namer.globalObjectFor(backend.interceptorsLibrary);
|
| + String holderName = namer.globalObjectFor(helpers.interceptorsLibrary);
|
| // TODO(floitsch): we shouldn't update the registry in the middle of
|
| // generating the interceptor methods.
|
| Holder holder = _registry.registerHolder(holderName);
|
|
|