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]); |