Chromium Code Reviews| 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 06cf6bce33d9e09975c247feee0ebaa602aa46ec..bd4f6199ed18d7c5531095f89cc9045d8e74d390 100644 |
| --- a/pkg/dev_compiler/lib/src/compiler/code_generator.dart |
| +++ b/pkg/dev_compiler/lib/src/compiler/code_generator.dart |
| @@ -2793,6 +2793,7 @@ class CodeGenerator extends Object |
| // To be safe always use the symbolized name when binding on a native |
| // class as bind assumes the name will match the name class sigatures |
| // which is symbolized for native classes. |
| + |
| var safeName = _emitMemberName(name, |
| isStatic: isStatic, |
| type: type, |
| @@ -4820,14 +4821,21 @@ class CodeGenerator extends Object |
| // To be safe always use the symbolized name when binding on a native |
| // class as bind assumes the name will match the name class signatures |
| // which is symbolized for native classes. |
| + |
| var safeName = _emitMemberName(memberName, |
| type: getStaticType(target), |
| isStatic: isStatic, |
| element: accessor, |
| alwaysSymbolizeNative: true); |
| if (isSuper) { |
| - result = |
| - _callHelper('bind(this, #, #.#)', [safeName, jsTarget, safeName]); |
| + if (!_superAllowed && jsTarget is JS.Super) { |
|
Jennifer Messerly
2017/06/19 20:24:52
You could refactor this entire code block, replaci
vsm
2017/06/19 20:36:20
Done.
|
| + var superName = _getSuperHelper(accessor, safeName) |
| + ..sourceInformation = jsTarget.sourceInformation; |
| + result = _callHelper('bind(this, #, #)', [safeName, superName]); |
| + } else { |
| + result = |
| + _callHelper('bind(this, #, #.#)', [safeName, jsTarget, safeName]); |
| + } |
| } else if (_isObjectMemberCall(target, memberName)) { |
| result = _callHelper('bind(#, #, #.#)', |
| [jsTarget, _propertyName(memberName), _runtimeModule, memberName]); |