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

Side by Side Diff: lib/runtime/dart/_interceptors.js

Issue 1195523002: Handle dynamic as bottom inside of function type reps (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Created 5 years, 6 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 dart_library.library('dart/_interceptors', null, /* Imports */[ 1 dart_library.library('dart/_interceptors', null, /* Imports */[
2 "dart_runtime/dart", 2 "dart_runtime/dart",
3 'dart/core', 3 'dart/core',
4 'dart/_internal', 4 'dart/_internal',
5 'dart/collection', 5 'dart/collection',
6 'dart/math' 6 'dart/math'
7 ], /* Lazy imports */[ 7 ], /* Lazy imports */[
8 'dart/_js_helper' 8 'dart/_js_helper'
9 ], function(exports, dart, core, _internal, collection, math, _js_helper) { 9 ], function(exports, dart, core, _internal, collection, math, _js_helper) {
10 'use strict'; 10 'use strict';
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
167 dart.as(f, dart.functionType(dart.void, [E])); 167 dart.as(f, dart.functionType(dart.void, [E]));
168 let length = this[dartx.length]; 168 let length = this[dartx.length];
169 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) { 169 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) {
170 f(dart.as(this[i], E)); 170 f(dart.as(this[i], E));
171 if (length != this[dartx.length]) { 171 if (length != this[dartx.length]) {
172 throw new core.ConcurrentModificationError(this); 172 throw new core.ConcurrentModificationError(this);
173 } 173 }
174 } 174 }
175 } 175 }
176 [dartx.map](f) { 176 [dartx.map](f) {
177 dart.as(f, dart.functionType(core.Object, [E])); 177 dart.as(f, dart.functionType(dart.dynamic, [E]));
178 return _internal.IterableMixinWorkaround.mapList(this, f); 178 return _internal.IterableMixinWorkaround.mapList(this, f);
179 } 179 }
180 [dartx.join](separator) { 180 [dartx.join](separator) {
181 if (separator === void 0) 181 if (separator === void 0)
182 separator = ""; 182 separator = "";
183 let list = core.List.new(this[dartx.length]); 183 let list = core.List.new(this[dartx.length]);
184 for (let i = 0; dart.notNull(i) < dart.notNull(this[dartx.length]); i = dart.notNull(i) + 1) { 184 for (let i = 0; dart.notNull(i) < dart.notNull(this[dartx.length]); i = dart.notNull(i) + 1) {
185 list[dartx.set](i, `${this[dartx.get](i)}`); 185 list[dartx.set](i, `${this[dartx.get](i)}`);
186 } 186 }
187 return list.join(separator); 187 return list.join(separator);
(...skipping 10 matching lines...) Expand all
198 } 198 }
199 [dartx.skipWhile](test) { 199 [dartx.skipWhile](test) {
200 dart.as(test, dart.functionType(core.bool, [E])); 200 dart.as(test, dart.functionType(core.bool, [E]));
201 return new (_internal.IterableMixinWorkaround$(E))().skipWhile(this, tes t); 201 return new (_internal.IterableMixinWorkaround$(E))().skipWhile(this, tes t);
202 } 202 }
203 [dartx.reduce](combine) { 203 [dartx.reduce](combine) {
204 dart.as(combine, dart.functionType(E, [E, E])); 204 dart.as(combine, dart.functionType(E, [E, E]));
205 return dart.as(_internal.IterableMixinWorkaround.reduce(this, combine), E); 205 return dart.as(_internal.IterableMixinWorkaround.reduce(this, combine), E);
206 } 206 }
207 [dartx.fold](initialValue, combine) { 207 [dartx.fold](initialValue, combine) {
208 dart.as(combine, dart.functionType(core.Object, [dart.bottom, E])); 208 dart.as(combine, dart.functionType(dart.dynamic, [dart.dynamic, E]));
vsm 2015/06/17 22:43:13 Is the "dynamic" first arg param Top or Bottom in
Leaf 2015/06/17 22:53:07 Dynamic here will be treated as bottom, since func
209 return _internal.IterableMixinWorkaround.fold(this, initialValue, combin e); 209 return _internal.IterableMixinWorkaround.fold(this, initialValue, combin e);
210 } 210 }
211 [dartx.firstWhere](test, opts) { 211 [dartx.firstWhere](test, opts) {
212 dart.as(test, dart.functionType(core.bool, [E])); 212 dart.as(test, dart.functionType(core.bool, [E]));
213 let orElse = opts && 'orElse' in opts ? opts.orElse : null; 213 let orElse = opts && 'orElse' in opts ? opts.orElse : null;
214 dart.as(orElse, dart.functionType(E, [])); 214 dart.as(orElse, dart.functionType(E, []));
215 return dart.as(_internal.IterableMixinWorkaround.firstWhere(this, test, orElse), E); 215 return dart.as(_internal.IterableMixinWorkaround.firstWhere(this, test, orElse), E);
216 } 216 }
217 [dartx.lastWhere](test, opts) { 217 [dartx.lastWhere](test, opts) {
218 dart.as(test, dart.functionType(core.bool, [E])); 218 dart.as(test, dart.functionType(core.bool, [E]));
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
389 } 389 }
390 [dartx.asMap]() { 390 [dartx.asMap]() {
391 return new (_internal.IterableMixinWorkaround$(E))().asMapList(this); 391 return new (_internal.IterableMixinWorkaround$(E))().asMapList(this);
392 } 392 }
393 } 393 }
394 dart.setBaseClass(JSArray, dart.global.Array); 394 dart.setBaseClass(JSArray, dart.global.Array);
395 JSArray[dart.implements] = () => [core.List$(E), JSIndexable]; 395 JSArray[dart.implements] = () => [core.List$(E), JSIndexable];
396 dart.setSignature(JSArray, { 396 dart.setSignature(JSArray, {
397 constructors: () => ({ 397 constructors: () => ({
398 JSArray: [JSArray$(E), []], 398 JSArray: [JSArray$(E), []],
399 typed: [JSArray$(E), [core.Object]], 399 typed: [JSArray$(E), [dart.dynamic]],
400 markFixed: [JSArray$(E), [core.Object]], 400 markFixed: [JSArray$(E), [dart.dynamic]],
401 markGrowable: [JSArray$(E), [core.Object]] 401 markGrowable: [JSArray$(E), [dart.dynamic]]
402 }), 402 }),
403 methods: () => ({ 403 methods: () => ({
404 [dartx.checkGrowable]: [core.Object, [core.Object]], 404 [dartx.checkGrowable]: [dart.dynamic, [dart.dynamic]],
405 [dartx.add]: [dart.void, [E]], 405 [dartx.add]: [dart.void, [E]],
406 [dartx.removeAt]: [E, [core.int]], 406 [dartx.removeAt]: [E, [core.int]],
407 [dartx.insert]: [dart.void, [core.int, E]], 407 [dartx.insert]: [dart.void, [core.int, E]],
408 [dartx.insertAll]: [dart.void, [core.int, core.Iterable$(E)]], 408 [dartx.insertAll]: [dart.void, [core.int, core.Iterable$(E)]],
409 [dartx.setAll]: [dart.void, [core.int, core.Iterable$(E)]], 409 [dartx.setAll]: [dart.void, [core.int, core.Iterable$(E)]],
410 [dartx.removeLast]: [E, []], 410 [dartx.removeLast]: [E, []],
411 [dartx.remove]: [core.bool, [core.Object]], 411 [dartx.remove]: [core.bool, [core.Object]],
412 [dartx.removeWhere]: [dart.void, [dart.functionType(core.bool, [E])]], 412 [dartx.removeWhere]: [dart.void, [dart.functionType(core.bool, [E])]],
413 [dartx.retainWhere]: [dart.void, [dart.functionType(core.bool, [E])]], 413 [dartx.retainWhere]: [dart.void, [dart.functionType(core.bool, [E])]],
414 [dartx.where]: [core.Iterable$(E), [dart.functionType(core.bool, [E])]], 414 [dartx.where]: [core.Iterable$(E), [dart.functionType(core.bool, [E])]],
415 [dartx.expand]: [core.Iterable, [dart.functionType(core.Iterable, [E])]] , 415 [dartx.expand]: [core.Iterable, [dart.functionType(core.Iterable, [E])]] ,
416 [dartx.addAll]: [dart.void, [core.Iterable$(E)]], 416 [dartx.addAll]: [dart.void, [core.Iterable$(E)]],
417 [dartx.clear]: [dart.void, []], 417 [dartx.clear]: [dart.void, []],
418 [dartx.forEach]: [dart.void, [dart.functionType(dart.void, [E])]], 418 [dartx.forEach]: [dart.void, [dart.functionType(dart.void, [E])]],
419 [dartx.map]: [core.Iterable, [dart.functionType(core.Object, [E])]], 419 [dartx.map]: [core.Iterable, [dart.functionType(dart.dynamic, [E])]],
420 [dartx.join]: [core.String, [], [core.String]], 420 [dartx.join]: [core.String, [], [core.String]],
421 [dartx.take]: [core.Iterable$(E), [core.int]], 421 [dartx.take]: [core.Iterable$(E), [core.int]],
422 [dartx.takeWhile]: [core.Iterable$(E), [dart.functionType(core.bool, [E] )]], 422 [dartx.takeWhile]: [core.Iterable$(E), [dart.functionType(core.bool, [E] )]],
423 [dartx.skip]: [core.Iterable$(E), [core.int]], 423 [dartx.skip]: [core.Iterable$(E), [core.int]],
424 [dartx.skipWhile]: [core.Iterable$(E), [dart.functionType(core.bool, [E] )]], 424 [dartx.skipWhile]: [core.Iterable$(E), [dart.functionType(core.bool, [E] )]],
425 [dartx.reduce]: [E, [dart.functionType(E, [E, E])]], 425 [dartx.reduce]: [E, [dart.functionType(E, [E, E])]],
426 [dartx.fold]: [core.Object, [core.Object, dart.functionType(core.Object, [dart.bottom, E])]], 426 [dartx.fold]: [dart.dynamic, [dart.dynamic, dart.functionType(dart.dynam ic, [dart.dynamic, E])]],
427 [dartx.firstWhere]: [E, [dart.functionType(core.bool, [E])], {orElse: da rt.functionType(E, [])}], 427 [dartx.firstWhere]: [E, [dart.functionType(core.bool, [E])], {orElse: da rt.functionType(E, [])}],
428 [dartx.lastWhere]: [E, [dart.functionType(core.bool, [E])], {orElse: dar t.functionType(E, [])}], 428 [dartx.lastWhere]: [E, [dart.functionType(core.bool, [E])], {orElse: dar t.functionType(E, [])}],
429 [dartx.singleWhere]: [E, [dart.functionType(core.bool, [E])]], 429 [dartx.singleWhere]: [E, [dart.functionType(core.bool, [E])]],
430 [dartx.elementAt]: [E, [core.int]], 430 [dartx.elementAt]: [E, [core.int]],
431 [dartx.sublist]: [core.List$(E), [core.int], [core.int]], 431 [dartx.sublist]: [core.List$(E), [core.int], [core.int]],
432 [dartx.getRange]: [core.Iterable$(E), [core.int, core.int]], 432 [dartx.getRange]: [core.Iterable$(E), [core.int, core.int]],
433 [dartx.removeRange]: [dart.void, [core.int, core.int]], 433 [dartx.removeRange]: [dart.void, [core.int, core.int]],
434 [dartx.setRange]: [dart.void, [core.int, core.int, core.Iterable$(E)], [ core.int]], 434 [dartx.setRange]: [dart.void, [core.int, core.int, core.Iterable$(E)], [ core.int]],
435 [dartx.fillRange]: [dart.void, [core.int, core.int], [E]], 435 [dartx.fillRange]: [dart.void, [core.int, core.int], [E]],
436 [dartx.replaceRange]: [dart.void, [core.int, core.int, core.Iterable$(E) ]], 436 [dartx.replaceRange]: [dart.void, [core.int, core.int, core.Iterable$(E) ]],
(...skipping 422 matching lines...) Expand 10 before | Expand all | Expand 10 after
859 [dartx.toStringAsFixed]: [core.String, [core.int]], 859 [dartx.toStringAsFixed]: [core.String, [core.int]],
860 [dartx.toStringAsExponential]: [core.String, [], [core.int]], 860 [dartx.toStringAsExponential]: [core.String, [], [core.int]],
861 [dartx.toStringAsPrecision]: [core.String, [core.int]], 861 [dartx.toStringAsPrecision]: [core.String, [core.int]],
862 [dartx.toRadixString]: [core.String, [core.int]], 862 [dartx.toRadixString]: [core.String, [core.int]],
863 [dartx['unary-']]: [core.num, []], 863 [dartx['unary-']]: [core.num, []],
864 [dartx['+']]: [core.num, [core.num]], 864 [dartx['+']]: [core.num, [core.num]],
865 [dartx['-']]: [core.num, [core.num]], 865 [dartx['-']]: [core.num, [core.num]],
866 [dartx['/']]: [core.double, [core.num]], 866 [dartx['/']]: [core.double, [core.num]],
867 [dartx['*']]: [core.num, [core.num]], 867 [dartx['*']]: [core.num, [core.num]],
868 [dartx['%']]: [core.num, [core.num]], 868 [dartx['%']]: [core.num, [core.num]],
869 [_isInt32]: [core.bool, [core.Object]], 869 [_isInt32]: [core.bool, [dart.dynamic]],
870 [dartx['~/']]: [core.int, [core.num]], 870 [dartx['~/']]: [core.int, [core.num]],
871 [_tdivFast]: [core.int, [core.num]], 871 [_tdivFast]: [core.int, [core.num]],
872 [_tdivSlow]: [core.int, [core.num]], 872 [_tdivSlow]: [core.int, [core.num]],
873 [dartx['<<']]: [core.num, [core.num]], 873 [dartx['<<']]: [core.num, [core.num]],
874 [_shlPositive]: [core.num, [core.num]], 874 [_shlPositive]: [core.num, [core.num]],
875 [dartx['>>']]: [core.num, [core.num]], 875 [dartx['>>']]: [core.num, [core.num]],
876 [_shrOtherPositive]: [core.num, [core.num]], 876 [_shrOtherPositive]: [core.num, [core.num]],
877 [_shrReceiverPositive]: [core.num, [core.num]], 877 [_shrReceiverPositive]: [core.num, [core.num]],
878 [_shrBothPositive]: [core.num, [core.num]], 878 [_shrBothPositive]: [core.num, [core.num]],
879 [dartx['&']]: [core.num, [core.num]], 879 [dartx['&']]: [core.num, [core.num]],
(...skipping 711 matching lines...) Expand 10 before | Expand all | Expand 10 after
1591 exports.JSString = JSString; 1591 exports.JSString = JSString;
1592 exports.getInterceptor = getInterceptor; 1592 exports.getInterceptor = getInterceptor;
1593 exports.JSBool = JSBool; 1593 exports.JSBool = JSBool;
1594 exports.JSIndexable = JSIndexable; 1594 exports.JSIndexable = JSIndexable;
1595 exports.JSMutableIndexable = JSMutableIndexable; 1595 exports.JSMutableIndexable = JSMutableIndexable;
1596 exports.JSObject = JSObject; 1596 exports.JSObject = JSObject;
1597 exports.JavaScriptObject = JavaScriptObject; 1597 exports.JavaScriptObject = JavaScriptObject;
1598 exports.PlainJavaScriptObject = PlainJavaScriptObject; 1598 exports.PlainJavaScriptObject = PlainJavaScriptObject;
1599 exports.UnknownJavaScriptObject = UnknownJavaScriptObject; 1599 exports.UnknownJavaScriptObject = UnknownJavaScriptObject;
1600 }); 1600 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698