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

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

Issue 2379173002: Add native_testing library to mock @Native classes (Closed)
Patch Set: xxx Created 4 years, 1 month 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
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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 // Regression test for Issue 9182. The generative constructor body function 5 // Regression test for Issue 9182. The generative constructor body function
6 // should not have the interceptor calling convention. 6 // should not have the interceptor calling convention.
7 7
8 import "dart:_js_helper"; 8 import "native_testing.dart";
9 import "package:expect/expect.dart";
10 9
11 @Native("A") 10 @Native("A")
12 class Foo { 11 class Foo {
13 factory Foo() => makeA(); 12 factory Foo() => makeA();
14 // Ensure the instance method 'Bar' uses interceptor convention. 13 // Ensure the instance method 'Bar' uses interceptor convention.
15 Bar() => 123; 14 Bar() => 123;
16 } 15 }
17 16
18 class Bar { 17 class Bar {
19 var _x, _y; 18 var _x, _y;
20 // Generative constructor with body, having the same name as interceptor 19 // Generative constructor with body, having the same name as interceptor
21 // convention instance member. 20 // convention instance member.
22 Bar(x, y) { 21 Bar(x, y) {
23 _x = x; 22 _x = x;
24 _y = y; 23 _y = y;
25 } 24 }
26 } 25 }
27 26
28 void setup() native r""" 27 void setup() native r"""
29 function A(){} 28 function A(){}
30 makeA = function() { return new A; }; 29 makeA = function() { return new A; };
30 self.nativeConstructor(A);
31 """; 31 """;
32 32
33 makeA() native ; 33 makeA() native ;
34 34
35 main() { 35 main() {
36 nativeTesting();
36 setup(); 37 setup();
37 38
38 var things = [new Foo(), new Bar(30, 40)]; 39 var foo = confuse(new Foo());
39 var foo = things[0]; 40 var bar = confuse(new Bar(30, 40));
40 var bar = things[1];
41 41
42 Expect.equals(123, foo.Bar()); // Ensure that Foo.Bar is used. 42 Expect.equals(123, foo.Bar()); // Ensure that Foo.Bar is used.
43 43
44 Expect.equals(30, bar._x); 44 Expect.equals(30, bar._x);
45 Expect.equals(40, bar._y); 45 Expect.equals(40, bar._y);
46 } 46 }
OLDNEW
« no previous file with comments | « tests/compiler/dart2js_native/is_check_test.dart ('k') | tests/compiler/dart2js_native/js_constant_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698