Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(17)

Side by Side Diff: tests/compiler/dart2js_native/native_no_such_method_exception4_frog_test.dart

Issue 12499005: dart2js: Create noSuchMethod handlers at runtime to reduce overhead. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Reordered some stuff due to code review feedback Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 class GetName {
6 foo(x, y) => "foo";
7 baz(x, y, z) => "baz";
8 }
9
10 static String getName(im) => im.invokeOn(new GetName());
11
5 class A native "*A" { 12 class A native "*A" {
6 bar() => 42; 13 bar() => 42;
7 noSuchMethod(x) => "native(${x.memberName}:${x.positionalArguments})"; 14 noSuchMethod(x) => "native(${getName(x)}:${x.positionalArguments})";
8 } 15 }
9 16
10 class B native "*B" { 17 class B native "*B" {
11 baz() => 42; 18 baz() => 42;
12 } 19 }
13 20
14 makeA() native; 21 makeA() native;
15 22
16 setup() native """ 23 setup() native """
17 function A() {} 24 function A() {}
18 makeA = function() { return new A; } 25 makeA = function() { return new A; }
19 """; 26 """;
20 27
21 main() { 28 main() {
22 setup(); 29 setup();
23 var a = makeA(); 30 var a = makeA();
24 a.bar(); 31 a.bar();
25 Expect.equals("native(foo:[1, 2])", a.foo(1, 2)); 32 Expect.equals("native(foo:[1, 2])", a.foo(1, 2));
26 Expect.equals("native(baz:[3, 4, 5])", a.baz(3, 4, 5)); 33 Expect.equals("native(baz:[3, 4, 5])", a.baz(3, 4, 5));
27 } 34 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698