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

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

Issue 2984403002: dart2js_native tests: Migrate 'native STRING' to JS-calls (Closed)
Patch Set: the rest of the files Created 3 years, 4 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
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, 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 // Test the feature where the native string declares the native method's name. 5 // Test the feature where the native string declares the native method's name.
6 // #3. The name does not get 6 // #3. The name does not get
7 7
8 import 'native_testing.dart'; 8 import 'native_testing.dart';
9 9
10 @Native("A") 10 @Native("A")
(...skipping 10 matching lines...) Expand all
21 } 21 }
22 22
23 class Decoy { 23 class Decoy {
24 int fooA() => 666; 24 int fooA() => 666;
25 int fooB() => 999; 25 int fooB() => 999;
26 } 26 }
27 27
28 makeA() native; 28 makeA() native;
29 makeB() native; 29 makeB() native;
30 30
31 void setup() native """ 31 void setup() {
32 // This code is all inside 'setup' and so not accessible from the global scope. 32 JS('', r"""
33 function inherits(child, parent) { 33 (function(){
34 if (child.prototype.__proto__) { 34 // This code is inside 'setup' and so not accessible from the global scope.
35 child.prototype.__proto__ = parent.prototype; 35 function inherits(child, parent) {
36 } else { 36 if (child.prototype.__proto__) {
37 function tmp() {}; 37 child.prototype.__proto__ = parent.prototype;
38 tmp.prototype = parent.prototype; 38 } else {
39 child.prototype = new tmp(); 39 function tmp() {};
40 child.prototype.constructor = child; 40 tmp.prototype = parent.prototype;
41 child.prototype = new tmp();
42 child.prototype.constructor = child;
43 }
41 } 44 }
45 function A(){}
46 A.prototype.fooA = function(){return 100;};
47 function B(){}
48 inherits(B, A);
49 B.prototype.fooB = function(){return 200;};
50
51 makeA = function(){return new A()};
52 makeB = function(){return new B()};
53
54 self.nativeConstructor(A);
55 self.nativeConstructor(B);
56 })()""");
42 } 57 }
43 function A(){}
44 A.prototype.fooA = function(){return 100;};
45 function B(){}
46 inherits(B, A);
47 B.prototype.fooB = function(){return 200;};
48
49 makeA = function(){return new A};
50 makeB = function(){return new B};
51
52 self.nativeConstructor(A);
53 self.nativeConstructor(B);
54 """;
55 58
56 testDynamic() { 59 testDynamic() {
57 var a = confuse(makeA()); 60 var a = confuse(makeA());
58 var b = confuse(makeB()); 61 var b = confuse(makeB());
59 var d = confuse(new Decoy()); 62 var d = confuse(new Decoy());
60 63
61 Expect.equals(100, a.foo()); 64 Expect.equals(100, a.foo());
62 Expect.equals(200, b.foo()); 65 Expect.equals(200, b.foo());
63 Expect.equals(666, d.fooA()); 66 Expect.equals(666, d.fooA());
64 Expect.equals(999, d.fooB()); 67 Expect.equals(999, d.fooB());
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 expectNoSuchMethod(action, note) { 101 expectNoSuchMethod(action, note) {
99 bool caught = false; 102 bool caught = false;
100 try { 103 try {
101 action(); 104 action();
102 } on NoSuchMethodError catch (ex) { 105 } on NoSuchMethodError catch (ex) {
103 caught = true; 106 caught = true;
104 Expect.isTrue(ex is NoSuchMethodError, note); 107 Expect.isTrue(ex is NoSuchMethodError, note);
105 } 108 }
106 Expect.isTrue(caught, note); 109 Expect.isTrue(caught, note);
107 } 110 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698