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

Side by Side Diff: test/browser/runtime_tests.js

Issue 1117793002: add checks needed for covariant generics, and List<E> (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Created 5 years, 7 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
« no previous file with comments | « lib/src/codegen/js_codegen.dart ('k') | test/codegen/covariance.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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 var assert = chai.assert; 5 var assert = chai.assert;
6 6
7 suite('generic', () => { 7 suite('generic', () => {
8 "use strict"; 8 "use strict";
9 9
10 let generic = dart.generic; 10 let generic = dart.generic;
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 suite('instanceOf', () => { 78 suite('instanceOf', () => {
79 "use strict"; 79 "use strict";
80 80
81 let expect = assert.equal; 81 let expect = assert.equal;
82 let isGroundType = dart.isGroundType; 82 let isGroundType = dart.isGroundType;
83 let generic = dart.generic; 83 let generic = dart.generic;
84 let intIsNonNullable = false; 84 let intIsNonNullable = false;
85 let cast = dart.as; 85 let cast = dart.as;
86 let instanceOf = dart.is; 86 let instanceOf = dart.is;
87 let runtimeType = dart.realRuntimeType; 87 let runtimeType = dart.realRuntimeType;
88 let setType = dart.setType; 88 let setRuntimeType = dart.setRuntimeType;
89 let functionType = dart.functionType; 89 let functionType = dart.functionType;
90 let typedef = dart.typedef; 90 let typedef = dart.typedef;
91 91
92 let Object = core.Object; 92 let Object = core.Object;
93 let String = core.String; 93 let String = core.String;
94 let dynamic = dart.dynamic; 94 let dynamic = dart.dynamic;
95 let List = core.List; 95 let List = core.List;
96 let Map = core.Map; 96 let Map = core.Map;
97 let Map$ = core.Map$; 97 let Map$ = core.Map$;
98 let int = core.int; 98 let int = core.int;
(...skipping 12 matching lines...) Expand all
111 111
112 let Func2 = typedef('Func2', () => functionType(dynamic, [dynamic, dynamic])); 112 let Func2 = typedef('Func2', () => functionType(dynamic, [dynamic, dynamic]));
113 let Foo = typedef('Foo', () => functionType(B, [B, String])); 113 let Foo = typedef('Foo', () => functionType(B, [B, String]));
114 114
115 let FuncG$ = generic((T, U) => typedef('FuncG', () => functionType(T, [T, U])) ) 115 let FuncG$ = generic((T, U) => typedef('FuncG', () => functionType(T, [T, U])) )
116 let FuncG = FuncG$(); 116 let FuncG = FuncG$();
117 117
118 // TODO(vsm): Revisit when we encode types on functions properly. 118 // TODO(vsm): Revisit when we encode types on functions properly.
119 // A bar1(C c, String s) => null; 119 // A bar1(C c, String s) => null;
120 function bar1(c, s) { return null; } 120 function bar1(c, s) { return null; }
121 setType(bar1, functionType(A, [C, String])); 121 setRuntimeType(bar1, functionType(A, [C, String]));
122 122
123 // bar2(B b, String s) => null; 123 // bar2(B b, String s) => null;
124 function bar2(b, s) { return null; } 124 function bar2(b, s) { return null; }
125 setType(bar2, functionType(dynamic, [B, String])); 125 setRuntimeType(bar2, functionType(dynamic, [B, String]));
126 126
127 // B bar3(B b, Object o) => null; 127 // B bar3(B b, Object o) => null;
128 function bar3(b, o) { return null; } 128 function bar3(b, o) { return null; }
129 setType(bar3, functionType(B, [B, Object])); 129 setRuntimeType(bar3, functionType(B, [B, Object]));
130 130
131 // B bar4(B b, o) => null; 131 // B bar4(B b, o) => null;
132 function bar4(b, o) { return null; } 132 function bar4(b, o) { return null; }
133 setType(bar4, functionType(B, [B, dynamic])); 133 setRuntimeType(bar4, functionType(B, [B, dynamic]));
134 134
135 // C bar5(A a, Object o) => null; 135 // C bar5(A a, Object o) => null;
136 function bar5(a, o) { return null; } 136 function bar5(a, o) { return null; }
137 setType(bar5, functionType(C, [A, Object])); 137 setRuntimeType(bar5, functionType(C, [A, Object]));
138 138
139 // B bar6(B b, String s, String o) => null; 139 // B bar6(B b, String s, String o) => null;
140 function bar6(b, s, o) { return null; } 140 function bar6(b, s, o) { return null; }
141 setType(bar6, functionType(B, [B, String, String])); 141 setRuntimeType(bar6, functionType(B, [B, String, String]));
142 142
143 // B bar7(B b, String s, [Object o]) => null; 143 // B bar7(B b, String s, [Object o]) => null;
144 function bar7(b, s, o) { return null; } 144 function bar7(b, s, o) { return null; }
145 setType(bar7, functionType(B, [B, String], [Object])); 145 setRuntimeType(bar7, functionType(B, [B, String], [Object]));
146 146
147 // B bar8(B b, String s, {Object p}) => null; 147 // B bar8(B b, String s, {Object p}) => null;
148 function bar8(b, s, o) { return null; } 148 function bar8(b, s, o) { return null; }
149 setType(bar8, functionType(B, [B, String], {p: Object})); 149 setRuntimeType(bar8, functionType(B, [B, String], {p: Object}));
150 150
151 function checkType(x, type, expectedTrue) { 151 function checkType(x, type, expectedTrue) {
152 if (expectedTrue === undefined) expectedTrue = true; 152 if (expectedTrue === undefined) expectedTrue = true;
153 expect(instanceOf(x, type), expectedTrue); 153 expect(instanceOf(x, type), expectedTrue);
154 } 154 }
155 155
156 test('int', () => { 156 test('int', () => {
157 expect(isGroundType(int), true); 157 expect(isGroundType(int), true);
158 expect(isGroundType(runtimeType(5)), true); 158 expect(isGroundType(runtimeType(5)), true);
159 159
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
384 let n = 42; 384 let n = 42;
385 let intHash = dart.hashCode(n); 385 let intHash = dart.hashCode(n);
386 checkType(intHash, core.int); 386 checkType(intHash, core.int);
387 387
388 let intString = dart.toString(n); 388 let intString = dart.toString(n);
389 assert.equal(intString, '42'); 389 assert.equal(intString, '42');
390 let intType = dart.runtimeType(n); 390 let intType = dart.runtimeType(n);
391 assert.equal(intType, core.int); 391 assert.equal(intType, core.int);
392 }); 392 });
393 }); 393 });
OLDNEW
« no previous file with comments | « lib/src/codegen/js_codegen.dart ('k') | test/codegen/covariance.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698