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 04a6132d47e558b31f36c648cfd3e753bd14187c..9b1c72fe7718123745657f34ee42af5a0433cf74 100644 |
--- a/pkg/dev_compiler/lib/src/compiler/code_generator.dart |
+++ b/pkg/dev_compiler/lib/src/compiler/code_generator.dart |
@@ -4802,8 +4802,13 @@ class CodeGenerator extends Object |
result = _callHelper('bind(this, #, #)', |
[safeName, _emitTargetAccess(jsTarget, name, accessor)]); |
} else if (_isObjectMemberCall(target, memberName)) { |
- result = _callHelper('bind(#, #, #.#)', |
- [jsTarget, _propertyName(memberName), _runtimeModule, memberName]); |
+ var fn = js.call( |
+ memberName == 'noSuchMethod' |
+ ? 'function(i) { return #.#(this, i); }' |
+ : 'function() { return #.#(this); }', |
+ [_runtimeModule, memberName]); |
+ result = _callHelper( |
+ 'bind(#, #, #)', [jsTarget, _propertyName(memberName), fn]); |
} else { |
result = _callHelper('bind(#, #)', [jsTarget, safeName]); |
} |