| Index: pkg/compiler/lib/src/js_emitter/native_emitter.dart
|
| diff --git a/pkg/compiler/lib/src/js_emitter/native_emitter.dart b/pkg/compiler/lib/src/js_emitter/native_emitter.dart
|
| index d4e1fe434be0f4fa0c66269f7a63de1297d0f1c8..ecde8235c070742f62bd75f0c2f30579c1b7e16b 100644
|
| --- a/pkg/compiler/lib/src/js_emitter/native_emitter.dart
|
| +++ b/pkg/compiler/lib/src/js_emitter/native_emitter.dart
|
| @@ -333,10 +333,17 @@ class NativeEmitter {
|
| // arguments up until the last one provided.
|
| target = member.fixedBackendName;
|
|
|
| - assert(invariant(member, isInterceptedMethod));
|
| - receiver = argumentsBuffer[0];
|
| - arguments = argumentsBuffer.sublist(1,
|
| - indexOfLastOptionalArgumentInParameters + 1);
|
| + if (isInterceptedMethod) {
|
| + receiver = argumentsBuffer[0];
|
| + arguments = argumentsBuffer.sublist(1,
|
| + indexOfLastOptionalArgumentInParameters + 1);
|
| + } else {
|
| + // Native methods that are not intercepted must be static.
|
| + assert(invariant(member, member.isStatic));
|
| + receiver = js('this');
|
| + arguments = argumentsBuffer.sublist(0,
|
| + indexOfLastOptionalArgumentInParameters + 1);
|
| + }
|
| statements.add(
|
| js.statement('return #.#(#)', [receiver, target, arguments]));
|
|
|
|
|