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

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

Issue 1137543005: Type check binary expressions (Closed) Base URL: https://github.com/dart-lang/dev_compiler.git@master
Patch Set: Rebase and remove assert 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
OLDNEW
1 var _js_helper = dart.defineLibrary(_js_helper, {}); 1 var _js_helper = dart.defineLibrary(_js_helper, {});
2 var core = dart.import(core); 2 var core = dart.import(core);
3 var collection = dart.import(collection); 3 var collection = dart.import(collection);
4 var _internal = dart.import(_internal); 4 var _internal = dart.import(_internal);
5 var _foreign_helper = dart.import(_foreign_helper); 5 var _foreign_helper = dart.import(_foreign_helper);
6 var _js_embedded_names = dart.import(_js_embedded_names); 6 var _js_embedded_names = dart.import(_js_embedded_names);
7 var _interceptors = dart.lazyImport(_interceptors); 7 var _interceptors = dart.lazyImport(_interceptors);
8 var _js_names = dart.import(_js_names); 8 var _js_names = dart.import(_js_names);
9 var async = dart.import(async); 9 var async = dart.import(async);
10 var _isolate_helper = dart.lazyImport(_isolate_helper); 10 var _isolate_helper = dart.lazyImport(_isolate_helper);
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 if (!dart.notNull(this.containsKey(key))) 116 if (!dart.notNull(this.containsKey(key)))
117 return null; 117 return null;
118 return dart.as(this[_fetch](key), V); 118 return dart.as(this[_fetch](key), V);
119 } 119 }
120 [_fetch](key) { 120 [_fetch](key) {
121 return jsPropertyAccess(this[_jsObject], dart.as(key, core.String)); 121 return jsPropertyAccess(this[_jsObject], dart.as(key, core.String));
122 } 122 }
123 forEach(f) { 123 forEach(f) {
124 dart.as(f, dart.functionType(dart.void, [K, V])); 124 dart.as(f, dart.functionType(dart.void, [K, V]));
125 let keys = this[_keys]; 125 let keys = this[_keys];
126 for (let i = 0; i['<'](dart.dload(keys, 'length')); i = dart.notNull(i) + 1) { 126 for (let i = 0; dart.notNull(i) < dart.notNull(dart.as(dart.dload(keys, 'length'), core.num)); i = dart.notNull(i) + 1) {
127 let key = dart.dindex(keys, i); 127 let key = dart.dindex(keys, i);
128 f(dart.as(key, K), dart.as(this[_fetch](key), V)); 128 f(dart.as(key, K), dart.as(this[_fetch](key), V));
129 } 129 }
130 } 130 }
131 get keys() { 131 get keys() {
132 return new (_ConstantMapKeyIterable$(K))(this); 132 return new (_ConstantMapKeyIterable$(K))(this);
133 } 133 }
134 get values() { 134 get values() {
135 return new (_internal.MappedIterable$(K, V))(this[_keys], dart.fn((key = > dart.as(this[_fetch](key), V)).bind(this), V, [dart.dynamic])); 135 return new (_internal.MappedIterable$(K, V))(this[_keys], dart.fn((key = > dart.as(this[_fetch](key), V)).bind(this), V, [dart.dynamic]));
136 } 136 }
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after
425 function initNativeDispatchContinue() { 425 function initNativeDispatchContinue() {
426 exports.dispatchRecordsForInstanceTags = Object.create(null); 426 exports.dispatchRecordsForInstanceTags = Object.create(null);
427 exports.interceptorsForUncacheableTags = Object.create(null); 427 exports.interceptorsForUncacheableTags = Object.create(null);
428 initHooks(); 428 initHooks();
429 let map = exports.interceptorsByTag; 429 let map = exports.interceptorsByTag;
430 let tags = Object.getOwnPropertyNames(map); 430 let tags = Object.getOwnPropertyNames(map);
431 if (typeof window != "undefined") { 431 if (typeof window != "undefined") {
432 let context = window; 432 let context = window;
433 let fun = function() { 433 let fun = function() {
434 }; 434 };
435 for (let i = 0; i['<'](dart.dload(tags, 'length')); i = dart.notNull(i) + 1) { 435 for (let i = 0; dart.notNull(i) < dart.notNull(dart.as(dart.dload(tags, 'l ength'), core.num)); i = dart.notNull(i) + 1) {
436 let tag = dart.dindex(tags, i); 436 let tag = dart.dindex(tags, i);
437 let proto = dart.dcall(exports.prototypeForTagFunction, tag); 437 let proto = dart.dcall(exports.prototypeForTagFunction, tag);
438 if (proto != null) { 438 if (proto != null) {
439 let interceptorClass = map[tag]; 439 let interceptorClass = map[tag];
440 let record = makeDefaultDispatchRecord(tag, interceptorClass, proto); 440 let record = makeDefaultDispatchRecord(tag, interceptorClass, proto);
441 if (record != null) { 441 if (record != null) {
442 _interceptors.setDispatchProperty(proto, record); 442 _interceptors.setDispatchProperty(proto, record);
443 fun.prototype = proto; 443 fun.prototype = proto;
444 } 444 }
445 } 445 }
446 } 446 }
447 } 447 }
448 for (let i = 0; i['<'](dart.dload(tags, 'length')); i = dart.notNull(i) + 1) { 448 for (let i = 0; dart.notNull(i) < dart.notNull(dart.as(dart.dload(tags, 'len gth'), core.num)); i = dart.notNull(i) + 1) {
449 let tag = tags[i]; 449 let tag = tags[i];
450 if (/^[A-Za-z_]/.test(tag)) { 450 if (/^[A-Za-z_]/.test(tag)) {
451 let interceptorClass = propertyGet(map, tag); 451 let interceptorClass = propertyGet(map, tag);
452 propertySet(map, dart.notNull(INSTANCE_CACHED_MARK) + dart.notNull(tag), interceptorClass); 452 propertySet(map, dart.notNull(INSTANCE_CACHED_MARK) + dart.notNull(tag), interceptorClass);
453 propertySet(map, dart.notNull(UNCACHED_MARK) + dart.notNull(tag), interc eptorClass); 453 propertySet(map, dart.notNull(UNCACHED_MARK) + dart.notNull(tag), interc eptorClass);
454 propertySet(map, dart.notNull(LEAF_MARK) + dart.notNull(tag), intercepto rClass); 454 propertySet(map, dart.notNull(LEAF_MARK) + dart.notNull(tag), intercepto rClass);
455 propertySet(map, dart.notNull(INTERIOR_MARK) + dart.notNull(tag), interc eptorClass); 455 propertySet(map, dart.notNull(INTERIOR_MARK) + dart.notNull(tag), interc eptorClass);
456 propertySet(map, dart.notNull(DISCRIMINATED_MARK) + dart.notNull(tag), i nterceptorClass); 456 propertySet(map, dart.notNull(DISCRIMINATED_MARK) + dart.notNull(tag), i nterceptorClass);
457 } 457 }
458 } 458 }
(...skipping 852 matching lines...) Expand 10 before | Expand all | Expand 10 after
1311 return false; 1311 return false;
1312 } 1312 }
1313 return true; 1313 return true;
1314 } 1314 }
1315 dart.fn(areAssignableMaps, core.bool, [dart.dynamic, dart.dynamic]); 1315 dart.fn(areAssignableMaps, core.bool, [dart.dynamic, dart.dynamic]);
1316 function isFunctionSubtype(s, t) { 1316 function isFunctionSubtype(s, t) {
1317 dart.assert(hasField(t, `${_foreign_helper.JS_FUNCTION_TYPE_TAG()}`)); 1317 dart.assert(hasField(t, `${_foreign_helper.JS_FUNCTION_TYPE_TAG()}`));
1318 if (hasNoField(s, `${_foreign_helper.JS_FUNCTION_TYPE_TAG()}`)) 1318 if (hasNoField(s, `${_foreign_helper.JS_FUNCTION_TYPE_TAG()}`))
1319 return false; 1319 return false;
1320 if (hasField(s, `${_foreign_helper.JS_FUNCTION_TYPE_VOID_RETURN_TAG()}`)) { 1320 if (hasField(s, `${_foreign_helper.JS_FUNCTION_TYPE_VOID_RETURN_TAG()}`)) {
1321 if (dart.dsend(hasNoField(t, `${_foreign_helper.JS_FUNCTION_TYPE_VOID_RETU RN_TAG()}`), '&&', hasField(t, `${_foreign_helper.JS_FUNCTION_TYPE_RETURN_TYPE_T AG()}`))) { 1321 if (dart.notNull(dart.as(hasNoField(t, `${_foreign_helper.JS_FUNCTION_TYPE _VOID_RETURN_TAG()}`), core.bool)) && dart.notNull(dart.as(hasField(t, `${_forei gn_helper.JS_FUNCTION_TYPE_RETURN_TYPE_TAG()}`), core.bool))) {
1322 return false; 1322 return false;
1323 } 1323 }
1324 } else if (hasNoField(t, `${_foreign_helper.JS_FUNCTION_TYPE_VOID_RETURN_TAG ()}`)) { 1324 } else if (hasNoField(t, `${_foreign_helper.JS_FUNCTION_TYPE_VOID_RETURN_TAG ()}`)) {
1325 let sReturnType = getField(s, `${_foreign_helper.JS_FUNCTION_TYPE_RETURN_T YPE_TAG()}`); 1325 let sReturnType = getField(s, `${_foreign_helper.JS_FUNCTION_TYPE_RETURN_T YPE_TAG()}`);
1326 let tReturnType = getField(t, `${_foreign_helper.JS_FUNCTION_TYPE_RETURN_T YPE_TAG()}`); 1326 let tReturnType = getField(t, `${_foreign_helper.JS_FUNCTION_TYPE_RETURN_T YPE_TAG()}`);
1327 if (!dart.notNull(isAssignable(sReturnType, tReturnType))) 1327 if (!dart.notNull(isAssignable(sReturnType, tReturnType)))
1328 return false; 1328 return false;
1329 } 1329 }
1330 let sParameterTypes = getField(s, `${_foreign_helper.JS_FUNCTION_TYPE_REQUIR ED_PARAMETERS_TAG()}`); 1330 let sParameterTypes = getField(s, `${_foreign_helper.JS_FUNCTION_TYPE_REQUIR ED_PARAMETERS_TAG()}`);
1331 let tParameterTypes = getField(t, `${_foreign_helper.JS_FUNCTION_TYPE_REQUIR ED_PARAMETERS_TAG()}`); 1331 let tParameterTypes = getField(t, `${_foreign_helper.JS_FUNCTION_TYPE_REQUIR ED_PARAMETERS_TAG()}`);
(...skipping 671 matching lines...) Expand 10 before | Expand all | Expand 10 after
2003 return result; 2003 return result;
2004 } 2004 }
2005 static stringFromCodePoints(codePoints) { 2005 static stringFromCodePoints(codePoints) {
2006 let a = dart.setType([], core.List$(core.int)); 2006 let a = dart.setType([], core.List$(core.int));
2007 for (let i of dart.as(codePoints, core.Iterable)) { 2007 for (let i of dart.as(codePoints, core.Iterable)) {
2008 if (!(typeof i == 'number')) 2008 if (!(typeof i == 'number'))
2009 throw new core.ArgumentError(i); 2009 throw new core.ArgumentError(i);
2010 if (dart.dsend(i, '<=', 65535)) { 2010 if (dart.dsend(i, '<=', 65535)) {
2011 a[core.$add](dart.as(i, core.int)); 2011 a[core.$add](dart.as(i, core.int));
2012 } else if (dart.dsend(i, '<=', 1114111)) { 2012 } else if (dart.dsend(i, '<=', 1114111)) {
2013 a[core.$add]((55296)['+'](dart.dsend(dart.dsend(dart.dsend(i, '-', 655 36), '>>', 10), '&', 1023))); 2013 a[core.$add]((55296)['+'](dart.as(dart.dsend(dart.dsend(dart.dsend(i, '-', 65536), '>>', 10), '&', 1023), core.num)));
2014 a[core.$add]((56320)['+'](dart.dsend(i, '&', 1023))); 2014 a[core.$add]((56320)['+'](dart.as(dart.dsend(i, '&', 1023), core.num)) );
2015 } else { 2015 } else {
2016 throw new core.ArgumentError(i); 2016 throw new core.ArgumentError(i);
2017 } 2017 }
2018 } 2018 }
2019 return Primitives._fromCharCodeApply(a); 2019 return Primitives._fromCharCodeApply(a);
2020 } 2020 }
2021 static stringFromCharCodes(charCodes) { 2021 static stringFromCharCodes(charCodes) {
2022 for (let i of dart.as(charCodes, core.Iterable)) { 2022 for (let i of dart.as(charCodes, core.Iterable)) {
2023 if (!(typeof i == 'number')) 2023 if (!(typeof i == 'number'))
2024 throw new core.ArgumentError(i); 2024 throw new core.ArgumentError(i);
2025 if (dart.dsend(i, '<', 0)) 2025 if (dart.dsend(i, '<', 0))
2026 throw new core.ArgumentError(i); 2026 throw new core.ArgumentError(i);
2027 if (dart.dsend(i, '>', 65535)) 2027 if (dart.dsend(i, '>', 65535))
2028 return Primitives.stringFromCodePoints(charCodes); 2028 return Primitives.stringFromCodePoints(charCodes);
2029 } 2029 }
2030 return Primitives._fromCharCodeApply(dart.as(charCodes, core.List$(core.in t))); 2030 return Primitives._fromCharCodeApply(dart.as(charCodes, core.List$(core.in t)));
2031 } 2031 }
2032 static stringFromCharCode(charCode) { 2032 static stringFromCharCode(charCode) {
2033 if ((0)['<='](charCode)) { 2033 if (0 <= dart.notNull(dart.as(charCode, core.num))) {
2034 if (dart.dsend(charCode, '<=', 65535)) { 2034 if (dart.dsend(charCode, '<=', 65535)) {
2035 return String.fromCharCode(charCode); 2035 return String.fromCharCode(charCode);
2036 } 2036 }
2037 if (dart.dsend(charCode, '<=', 1114111)) { 2037 if (dart.dsend(charCode, '<=', 1114111)) {
2038 let bits = dart.dsend(charCode, '-', 65536); 2038 let bits = dart.dsend(charCode, '-', 65536);
2039 let low = (56320)['|'](dart.dsend(bits, '&', 1023)); 2039 let low = (56320)['|'](dart.as(dart.dsend(bits, '&', 1023), core.int)) ;
2040 let high = (55296)['|'](dart.dsend(bits, '>>', 10)); 2040 let high = (55296)['|'](dart.as(dart.dsend(bits, '>>', 10), core.int)) ;
2041 return String.fromCharCode(high, low); 2041 return String.fromCharCode(high, low);
2042 } 2042 }
2043 } 2043 }
2044 throw new core.RangeError.range(dart.as(charCode, core.num), 0, 1114111); 2044 throw new core.RangeError.range(dart.as(charCode, core.num), 0, 1114111);
2045 } 2045 }
2046 static stringConcatUnchecked(string1, string2) { 2046 static stringConcatUnchecked(string1, string2) {
2047 return _foreign_helper.JS_STRING_CONCAT(string1, string2); 2047 return _foreign_helper.JS_STRING_CONCAT(string1, string2);
2048 } 2048 }
2049 static flattenString(str) { 2049 static flattenString(str) {
2050 return str.charCodeAt(0) == 0 ? str : str; 2050 return str.charCodeAt(0) == 0 ? str : str;
(...skipping 24 matching lines...) Expand all
2075 checkInt(seconds); 2075 checkInt(seconds);
2076 checkInt(milliseconds); 2076 checkInt(milliseconds);
2077 checkBool(isUtc); 2077 checkBool(isUtc);
2078 let jsMonth = dart.dsend(month, '-', 1); 2078 let jsMonth = dart.dsend(month, '-', 1);
2079 let value = null; 2079 let value = null;
2080 if (isUtc) { 2080 if (isUtc) {
2081 value = Date.UTC(years, jsMonth, day, hours, minutes, seconds, milliseco nds); 2081 value = Date.UTC(years, jsMonth, day, hours, minutes, seconds, milliseco nds);
2082 } else { 2082 } else {
2083 value = new Date(years, jsMonth, day, hours, minutes, seconds, milliseco nds).valueOf(); 2083 value = new Date(years, jsMonth, day, hours, minutes, seconds, milliseco nds).valueOf();
2084 } 2084 }
2085 if (dart.dsend(dart.dload(value, 'isNaN'), '||', dart.dsend(value, '<', -d art.notNull(MAX_MILLISECONDS_SINCE_EPOCH)))['||'](dart.dsend(value, '>', MAX_MIL LISECONDS_SINCE_EPOCH))) { 2085 if (dart.notNull(dart.as(dart.dload(value, 'isNaN'), core.bool)) || dart.n otNull(dart.as(dart.dsend(value, '<', -dart.notNull(MAX_MILLISECONDS_SINCE_EPOCH )), core.bool)) || dart.notNull(dart.as(dart.dsend(value, '>', MAX_MILLISECONDS_ SINCE_EPOCH), core.bool))) {
2086 return null; 2086 return null;
2087 } 2087 }
2088 if (dart.dsend(dart.dsend(years, '<=', 0), '||', dart.dsend(years, '<', 10 0))) 2088 if (dart.notNull(dart.as(dart.dsend(years, '<=', 0), core.bool)) || dart.n otNull(dart.as(dart.dsend(years, '<', 100), core.bool)))
2089 return Primitives.patchUpY2K(value, years, isUtc); 2089 return Primitives.patchUpY2K(value, years, isUtc);
2090 return value; 2090 return value;
2091 } 2091 }
2092 static patchUpY2K(value, years, isUtc) { 2092 static patchUpY2K(value, years, isUtc) {
2093 let date = new Date(value); 2093 let date = new Date(value);
2094 if (isUtc) { 2094 if (isUtc) {
2095 date.setUTCFullYear(years); 2095 date.setUTCFullYear(years);
2096 } else { 2096 } else {
2097 date.setFullYear(years); 2097 date.setFullYear(years);
2098 } 2098 }
(...skipping 1536 matching lines...) Expand 10 before | Expand all | Expand 10 after
3635 let rti = dart.dsend(this.namedParameters[name], 'toRti'); 3635 let rti = dart.dsend(this.namedParameters[name], 'toRti');
3636 namedRti[name] = rti; 3636 namedRti[name] = rti;
3637 } 3637 }
3638 result[_foreign_helper.JS_FUNCTION_TYPE_NAMED_PARAMETERS_TAG()] = namedR ti; 3638 result[_foreign_helper.JS_FUNCTION_TYPE_NAMED_PARAMETERS_TAG()] = namedR ti;
3639 } 3639 }
3640 return result; 3640 return result;
3641 } 3641 }
3642 static listToRti(list) { 3642 static listToRti(list) {
3643 list = list; 3643 list = list;
3644 let result = []; 3644 let result = [];
3645 for (let i = 0; i['<'](dart.dload(list, 'length')); i = dart.notNull(i) + 1) { 3645 for (let i = 0; dart.notNull(i) < dart.notNull(dart.as(dart.dload(list, 'l ength'), core.num)); i = dart.notNull(i) + 1) {
3646 result.push(dart.dsend(dart.dindex(list, i), 'toRti')); 3646 result.push(dart.dsend(dart.dindex(list, i), 'toRti'));
3647 } 3647 }
3648 return result; 3648 return result;
3649 } 3649 }
3650 toString() { 3650 toString() {
3651 let result = '('; 3651 let result = '(';
3652 let needsComma = false; 3652 let needsComma = false;
3653 if (this.parameterTypes != null) { 3653 if (this.parameterTypes != null) {
3654 for (let i = 0; dart.notNull(i) < dart.notNull(this.parameterTypes[core. $length]); i = dart.notNull(i) + 1) { 3654 for (let i = 0; dart.notNull(i) < dart.notNull(this.parameterTypes[core. $length]); i = dart.notNull(i) + 1) {
3655 let type = this.parameterTypes[core.$get](i); 3655 let type = this.parameterTypes[core.$get](i);
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
3714 function buildFunctionType(returnType, parameterTypes, optionalParameterTypes) { 3714 function buildFunctionType(returnType, parameterTypes, optionalParameterTypes) {
3715 return new RuntimeFunctionType(dart.as(returnType, RuntimeType), dart.as(par ameterTypes, core.List$(RuntimeType)), dart.as(optionalParameterTypes, core.List $(RuntimeType)), null); 3715 return new RuntimeFunctionType(dart.as(returnType, RuntimeType), dart.as(par ameterTypes, core.List$(RuntimeType)), dart.as(optionalParameterTypes, core.List $(RuntimeType)), null);
3716 } 3716 }
3717 dart.fn(buildFunctionType, RuntimeFunctionType, [dart.dynamic, dart.dynamic, d art.dynamic]); 3717 dart.fn(buildFunctionType, RuntimeFunctionType, [dart.dynamic, dart.dynamic, d art.dynamic]);
3718 function buildNamedFunctionType(returnType, parameterTypes, namedParameters) { 3718 function buildNamedFunctionType(returnType, parameterTypes, namedParameters) {
3719 return new RuntimeFunctionType(dart.as(returnType, RuntimeType), dart.as(par ameterTypes, core.List$(RuntimeType)), null, namedParameters); 3719 return new RuntimeFunctionType(dart.as(returnType, RuntimeType), dart.as(par ameterTypes, core.List$(RuntimeType)), null, namedParameters);
3720 } 3720 }
3721 dart.fn(buildNamedFunctionType, RuntimeFunctionType, [dart.dynamic, dart.dynam ic, dart.dynamic]); 3721 dart.fn(buildNamedFunctionType, RuntimeFunctionType, [dart.dynamic, dart.dynam ic, dart.dynamic]);
3722 function buildInterfaceType(rti, typeArguments) { 3722 function buildInterfaceType(rti, typeArguments) {
3723 let name = dart.as(rti.name, core.String); 3723 let name = dart.as(rti.name, core.String);
3724 if ((typeArguments == null)['||'](dart.dload(typeArguments, 'isEmpty'))) { 3724 if (dart.notNull(typeArguments == null) || dart.notNull(dart.as(dart.dload(t ypeArguments, 'isEmpty'), core.bool))) {
3725 return new RuntimeTypePlain(name); 3725 return new RuntimeTypePlain(name);
3726 } 3726 }
3727 return new RuntimeTypeGeneric(name, dart.as(typeArguments, core.List$(Runtim eType)), null); 3727 return new RuntimeTypeGeneric(name, dart.as(typeArguments, core.List$(Runtim eType)), null);
3728 } 3728 }
3729 dart.fn(buildInterfaceType, RuntimeType, [dart.dynamic, dart.dynamic]); 3729 dart.fn(buildInterfaceType, RuntimeType, [dart.dynamic, dart.dynamic]);
3730 class DynamicRuntimeType extends RuntimeType { 3730 class DynamicRuntimeType extends RuntimeType {
3731 DynamicRuntimeType() { 3731 DynamicRuntimeType() {
3732 super.RuntimeType(); 3732 super.RuntimeType();
3733 } 3733 }
3734 toString() { 3734 toString() {
(...skipping 622 matching lines...) Expand 10 before | Expand all | Expand 10 after
4357 exports.jsonEncodeNative = jsonEncodeNative; 4357 exports.jsonEncodeNative = jsonEncodeNative;
4358 exports.getIsolateAffinityTag = getIsolateAffinityTag; 4358 exports.getIsolateAffinityTag = getIsolateAffinityTag;
4359 exports.LoadLibraryFunctionType = LoadLibraryFunctionType; 4359 exports.LoadLibraryFunctionType = LoadLibraryFunctionType;
4360 exports.DeferredLoadCallback = DeferredLoadCallback; 4360 exports.DeferredLoadCallback = DeferredLoadCallback;
4361 exports.loadDeferredLibrary = loadDeferredLibrary; 4361 exports.loadDeferredLibrary = loadDeferredLibrary;
4362 exports.MainError = MainError; 4362 exports.MainError = MainError;
4363 exports.missingMain = missingMain; 4363 exports.missingMain = missingMain;
4364 exports.badMain = badMain; 4364 exports.badMain = badMain;
4365 exports.mainHasTooManyParameters = mainHasTooManyParameters; 4365 exports.mainHasTooManyParameters = mainHasTooManyParameters;
4366 })(_js_helper, core, collection, _internal, _foreign_helper, _js_embedded_names, _interceptors, _js_names, async, _isolate_helper); 4366 })(_js_helper, core, collection, _internal, _foreign_helper, _js_embedded_names, _interceptors, _js_names, async, _isolate_helper);
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698