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

Side by Side Diff: tests/compiler/dart2js_native/native_missing_method1_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) 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 import 'native_testing.dart'; 5 import 'native_testing.dart';
6 6
7 @Native("A") 7 @Native("A")
8 class A {} 8 class A {}
9 9
10 A makeA() native; 10 A makeA() native;
11 11
12 void setup() native """ 12 void setup() {
13 function A() {}; 13 JS('', r"""
14 A.prototype.foo = function() { return 99; } 14 (function(){
15 makeA = function() { return new A; } 15 function A() {};
16 self.nativeConstructor(A); 16 A.prototype.foo = function() { return 99; };
17 """; 17 makeA = function() { return new A(); };
18 self.nativeConstructor(A);
19 })()""");
20 }
18 21
19 class B { 22 class B {
20 // We need to define a foo method so that dart2js sees it. Because the 23 // We need to define a foo method so that dart2js sees it. Because the
21 // only occurences of 'foo' is on B, a Dart class, no interceptor is used. It 24 // only occurences of 'foo' is on B, a Dart class, no interceptor is used. It
22 // thinks all calls will either go to this method, or throw a 25 // thinks all calls will either go to this method, or throw a
23 // NoSuchMethodError. It is possible that the native class will shadow a 26 // NoSuchMethodError. It is possible that the native class will shadow a
24 // method, but it will not shadow 'foo' because the name is either 'mangled' 27 // method, but it will not shadow 'foo' because the name is either 'mangled'
25 // with the arity, or minified. 28 // with the arity, or minified.
26 foo() { 29 foo() {
27 return 42; 30 return 42;
(...skipping 15 matching lines...) Expand all
43 Expect.throws(() => a.foo, (e) => e is NoSuchMethodError); 46 Expect.throws(() => a.foo, (e) => e is NoSuchMethodError);
44 Expect.throws(() => a.foo = 4, (e) => e is NoSuchMethodError); 47 Expect.throws(() => a.foo = 4, (e) => e is NoSuchMethodError);
45 } 48 }
46 49
47 main() { 50 main() {
48 nativeTesting(); 51 nativeTesting();
49 setup(); 52 setup();
50 typedContext(); 53 typedContext();
51 untypedContext(); 54 untypedContext();
52 } 55 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698