| Index: tests/compiler/dart2js_native/native_missing_method1_frog_test.dart
|
| diff --git a/tests/compiler/dart2js_native/native_missing_method1_frog_test.dart b/tests/compiler/dart2js_native/native_missing_method1_frog_test.dart
|
| index 6223080f73f0bb515f8da61fd2613d7fb85c914d..a6c0e077f2dbc0e7922ccbf7b847ab6b81ec7007 100644
|
| --- a/tests/compiler/dart2js_native/native_missing_method1_frog_test.dart
|
| +++ b/tests/compiler/dart2js_native/native_missing_method1_frog_test.dart
|
| @@ -2,50 +2,47 @@
|
| // for details. All rights reserved. Use of this source code is governed by a
|
| // BSD-style license that can be found in the LICENSE file.
|
|
|
| -import 'native_testing.dart';
|
| +import "dart:_js_helper";
|
| +import "package:expect/expect.dart";
|
|
|
| @Native("A")
|
| class A {}
|
|
|
| -A makeA() native ;
|
| +makeA() native ;
|
|
|
| void setup() native """
|
| function A() {};
|
| -A.prototype.foo = function() { return 99; }
|
| +A.prototype.foo = function() { return 42; }
|
| makeA = function() { return new A; }
|
| -self.nativeConstructor(A);
|
| """;
|
|
|
| class B {
|
| - // We need to define a foo method so that dart2js sees it. Because the the
|
| - // only occurences of 'foo' is on B, a Dart class, no interceptor is used. It
|
| - // thinks all calls will either go to this method, or throw a
|
| - // NoSuchMethodError. It is possible that the native class will shadow a
|
| - // method, but it will not shadow 'foo' because the name is either 'mangled'
|
| - // with the arity, or minified.
|
| + // We need to define a foo method so that Frog sees it. Because it's
|
| + // the only occurence of 'foo', Frog does not bother mangling the
|
| + // call sites. It thinks all calls will either go to this method, or
|
| + // throw a NoSuchMethodError.
|
| foo() {
|
| return 42;
|
| }
|
| }
|
|
|
| typedContext() {
|
| - confuse(new B()).foo();
|
| - A a = makeA();
|
| + var things = [makeA(), new B()];
|
| + A a = things[0];
|
| Expect.throws(() => a.foo(), (e) => e is NoSuchMethodError);
|
| Expect.throws(() => a.foo, (e) => e is NoSuchMethodError);
|
| Expect.throws(() => a.foo = 4, (e) => e is NoSuchMethodError);
|
| }
|
|
|
| untypedContext() {
|
| - confuse(new B()).foo();
|
| - var a = confuse(makeA());
|
| + var things = [makeA(), new B()];
|
| + var a = things[0];
|
| Expect.throws(() => a.foo(), (e) => e is NoSuchMethodError);
|
| Expect.throws(() => a.foo, (e) => e is NoSuchMethodError);
|
| Expect.throws(() => a.foo = 4, (e) => e is NoSuchMethodError);
|
| }
|
|
|
| main() {
|
| - nativeTesting();
|
| setup();
|
| typedContext();
|
| untypedContext();
|
|
|