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

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

Issue 1131143002: Angular workarounds (Closed) Base URL: https://github.com/dart-lang/dev_compiler.git@master
Patch Set: Rebase on latest 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 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 if (!dart.notNull(this.containsKey(key))) 100 if (!dart.notNull(this.containsKey(key)))
101 return null; 101 return null;
102 return dart.as(this[_fetch](key), V); 102 return dart.as(this[_fetch](key), V);
103 } 103 }
104 [_fetch](key) { 104 [_fetch](key) {
105 return jsPropertyAccess(this[_jsObject], dart.as(key, core.String)); 105 return jsPropertyAccess(this[_jsObject], dart.as(key, core.String));
106 } 106 }
107 forEach(f) { 107 forEach(f) {
108 dart.as(f, dart.functionType(dart.void, [K, V])); 108 dart.as(f, dart.functionType(dart.void, [K, V]));
109 let keys = this[_keys]; 109 let keys = this[_keys];
110 for (let i = 0; core.int['<'](i, dart.dload(keys, 'length')); i = dart.n otNull(i) + 1) { 110 for (let i = 0; i['<'](dart.dload(keys, 'length')); i = dart.notNull(i) + 1) {
111 let key = dart.dindex(keys, i); 111 let key = dart.dindex(keys, i);
112 f(dart.as(key, K), dart.as(this[_fetch](key), V)); 112 f(dart.as(key, K), dart.as(this[_fetch](key), V));
113 } 113 }
114 } 114 }
115 get keys() { 115 get keys() {
116 return new (_ConstantMapKeyIterable$(K))(this); 116 return new (_ConstantMapKeyIterable$(K))(this);
117 } 117 }
118 get values() { 118 get values() {
119 return new (_internal.MappedIterable$(K, V))(this[_keys], (key => dart.a s(this[_fetch](key), V)).bind(this)); 119 return new (_internal.MappedIterable$(K, V))(this[_keys], (key => dart.a s(this[_fetch](key), V)).bind(this));
120 } 120 }
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after
385 function initNativeDispatchContinue() { 385 function initNativeDispatchContinue() {
386 exports.dispatchRecordsForInstanceTags = Object.create(null); 386 exports.dispatchRecordsForInstanceTags = Object.create(null);
387 exports.interceptorsForUncacheableTags = Object.create(null); 387 exports.interceptorsForUncacheableTags = Object.create(null);
388 initHooks(); 388 initHooks();
389 let map = exports.interceptorsByTag; 389 let map = exports.interceptorsByTag;
390 let tags = Object.getOwnPropertyNames(map); 390 let tags = Object.getOwnPropertyNames(map);
391 if (typeof window != "undefined") { 391 if (typeof window != "undefined") {
392 let context = window; 392 let context = window;
393 let fun = function() { 393 let fun = function() {
394 }; 394 };
395 for (let i = 0; core.int['<'](i, dart.dload(tags, 'length')); i = dart.not Null(i) + 1) { 395 for (let i = 0; i['<'](dart.dload(tags, 'length')); i = dart.notNull(i) + 1) {
396 let tag = dart.dindex(tags, i); 396 let tag = dart.dindex(tags, i);
397 let proto = dart.dcall(exports.prototypeForTagFunction, tag); 397 let proto = dart.dcall(exports.prototypeForTagFunction, tag);
398 if (proto != null) { 398 if (proto != null) {
399 let interceptorClass = map[tag]; 399 let interceptorClass = map[tag];
400 let record = makeDefaultDispatchRecord(tag, interceptorClass, proto); 400 let record = makeDefaultDispatchRecord(tag, interceptorClass, proto);
401 if (record != null) { 401 if (record != null) {
402 _interceptors.setDispatchProperty(proto, record); 402 _interceptors.setDispatchProperty(proto, record);
403 fun.prototype = proto; 403 fun.prototype = proto;
404 } 404 }
405 } 405 }
406 } 406 }
407 } 407 }
408 for (let i = 0; core.int['<'](i, dart.dload(tags, 'length')); i = dart.notNu ll(i) + 1) { 408 for (let i = 0; i['<'](dart.dload(tags, 'length')); i = dart.notNull(i) + 1) {
409 let tag = tags[i]; 409 let tag = tags[i];
410 if (/^[A-Za-z_]/.test(tag)) { 410 if (/^[A-Za-z_]/.test(tag)) {
411 let interceptorClass = propertyGet(map, tag); 411 let interceptorClass = propertyGet(map, tag);
412 propertySet(map, dart.notNull(INSTANCE_CACHED_MARK) + dart.notNull(tag), interceptorClass); 412 propertySet(map, dart.notNull(INSTANCE_CACHED_MARK) + dart.notNull(tag), interceptorClass);
413 propertySet(map, dart.notNull(UNCACHED_MARK) + dart.notNull(tag), interc eptorClass); 413 propertySet(map, dart.notNull(UNCACHED_MARK) + dart.notNull(tag), interc eptorClass);
414 propertySet(map, dart.notNull(LEAF_MARK) + dart.notNull(tag), intercepto rClass); 414 propertySet(map, dart.notNull(LEAF_MARK) + dart.notNull(tag), intercepto rClass);
415 propertySet(map, dart.notNull(INTERIOR_MARK) + dart.notNull(tag), interc eptorClass); 415 propertySet(map, dart.notNull(INTERIOR_MARK) + dart.notNull(tag), interc eptorClass);
416 propertySet(map, dart.notNull(DISCRIMINATED_MARK) + dart.notNull(tag), i nterceptorClass); 416 propertySet(map, dart.notNull(DISCRIMINATED_MARK) + dart.notNull(tag), i nterceptorClass);
417 } 417 }
418 } 418 }
(...skipping 1414 matching lines...) Expand 10 before | Expand all | Expand 10 after
1833 let name = Primitives.constructorNameFallback(object); 1833 let name = Primitives.constructorNameFallback(object);
1834 if (name == 'Object') { 1834 if (name == 'Object') {
1835 let decompiled = String(object.constructor).match(/^\s*function\s*(\S*)\ s*\(/)[1]; 1835 let decompiled = String(object.constructor).match(/^\s*function\s*(\S*)\ s*\(/)[1];
1836 if (typeof decompiled == 'string') 1836 if (typeof decompiled == 'string')
1837 if (/^\w+$/.test(decompiled)) 1837 if (/^\w+$/.test(decompiled))
1838 name = dart.as(decompiled, core.String); 1838 name = dart.as(decompiled, core.String);
1839 } 1839 }
1840 return Primitives.formatType(name, dart.as(getRuntimeTypeInfo(object), cor e.List)); 1840 return Primitives.formatType(name, dart.as(getRuntimeTypeInfo(object), cor e.List));
1841 } 1841 }
1842 static objectToString(object) { 1842 static objectToString(object) {
1843 let name = Primitives.objectTypeName(object); 1843 let name = dart.typeName(dart.realRuntimeType(object));
1844 return `Instance of '${name}'`; 1844 return `Instance of '${name}'`;
1845 } 1845 }
1846 static dateNow() { 1846 static dateNow() {
1847 return Date.now(); 1847 return Date.now();
1848 } 1848 }
1849 static initTicker() { 1849 static initTicker() {
1850 if (Primitives.timerFrequency != null) 1850 if (Primitives.timerFrequency != null)
1851 return; 1851 return;
1852 Primitives.timerFrequency = 1000; 1852 Primitives.timerFrequency = 1000;
1853 Primitives.timerTicks = Primitives.dateNow; 1853 Primitives.timerTicks = Primitives.dateNow;
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
1893 return result; 1893 return result;
1894 } 1894 }
1895 static stringFromCodePoints(codePoints) { 1895 static stringFromCodePoints(codePoints) {
1896 let a = dart.setType([], core.List$(core.int)); 1896 let a = dart.setType([], core.List$(core.int));
1897 for (let i of dart.as(codePoints, core.Iterable)) { 1897 for (let i of dart.as(codePoints, core.Iterable)) {
1898 if (!(typeof i == 'number')) 1898 if (!(typeof i == 'number'))
1899 throw new core.ArgumentError(i); 1899 throw new core.ArgumentError(i);
1900 if (dart.dsend(i, '<=', 65535)) { 1900 if (dart.dsend(i, '<=', 65535)) {
1901 a[core.$add](dart.as(i, core.int)); 1901 a[core.$add](dart.as(i, core.int));
1902 } else if (dart.dsend(i, '<=', 1114111)) { 1902 } else if (dart.dsend(i, '<=', 1114111)) {
1903 a[core.$add](core.int['+'](55296, dart.dsend(dart.dsend(dart.dsend(i, '-', 65536), '>>', 10), '&', 1023))); 1903 a[core.$add]((55296)['+'](dart.dsend(dart.dsend(dart.dsend(i, '-', 655 36), '>>', 10), '&', 1023)));
1904 a[core.$add](core.int['+'](56320, dart.dsend(i, '&', 1023))); 1904 a[core.$add]((56320)['+'](dart.dsend(i, '&', 1023)));
1905 } else { 1905 } else {
1906 throw new core.ArgumentError(i); 1906 throw new core.ArgumentError(i);
1907 } 1907 }
1908 } 1908 }
1909 return Primitives._fromCharCodeApply(a); 1909 return Primitives._fromCharCodeApply(a);
1910 } 1910 }
1911 static stringFromCharCodes(charCodes) { 1911 static stringFromCharCodes(charCodes) {
1912 for (let i of dart.as(charCodes, core.Iterable)) { 1912 for (let i of dart.as(charCodes, core.Iterable)) {
1913 if (!(typeof i == 'number')) 1913 if (!(typeof i == 'number'))
1914 throw new core.ArgumentError(i); 1914 throw new core.ArgumentError(i);
1915 if (dart.dsend(i, '<', 0)) 1915 if (dart.dsend(i, '<', 0))
1916 throw new core.ArgumentError(i); 1916 throw new core.ArgumentError(i);
1917 if (dart.dsend(i, '>', 65535)) 1917 if (dart.dsend(i, '>', 65535))
1918 return Primitives.stringFromCodePoints(charCodes); 1918 return Primitives.stringFromCodePoints(charCodes);
1919 } 1919 }
1920 return Primitives._fromCharCodeApply(dart.as(charCodes, core.List$(core.in t))); 1920 return Primitives._fromCharCodeApply(dart.as(charCodes, core.List$(core.in t)));
1921 } 1921 }
1922 static stringFromCharCode(charCode) { 1922 static stringFromCharCode(charCode) {
1923 if (core.int['<='](0, charCode)) { 1923 if ((0)['<='](charCode)) {
1924 if (dart.dsend(charCode, '<=', 65535)) { 1924 if (dart.dsend(charCode, '<=', 65535)) {
1925 return String.fromCharCode(charCode); 1925 return String.fromCharCode(charCode);
1926 } 1926 }
1927 if (dart.dsend(charCode, '<=', 1114111)) { 1927 if (dart.dsend(charCode, '<=', 1114111)) {
1928 let bits = dart.dsend(charCode, '-', 65536); 1928 let bits = dart.dsend(charCode, '-', 65536);
1929 let low = core.int['|'](56320, dart.dsend(bits, '&', 1023)); 1929 let low = (56320)['|'](dart.dsend(bits, '&', 1023));
1930 let high = core.int['|'](55296, dart.dsend(bits, '>>', 10)); 1930 let high = (55296)['|'](dart.dsend(bits, '>>', 10));
1931 return String.fromCharCode(high, low); 1931 return String.fromCharCode(high, low);
1932 } 1932 }
1933 } 1933 }
1934 throw new core.RangeError.range(dart.as(charCode, core.num), 0, 1114111); 1934 throw new core.RangeError.range(dart.as(charCode, core.num), 0, 1114111);
1935 } 1935 }
1936 static stringConcatUnchecked(string1, string2) { 1936 static stringConcatUnchecked(string1, string2) {
1937 return _foreign_helper.JS_STRING_CONCAT(string1, string2); 1937 return _foreign_helper.JS_STRING_CONCAT(string1, string2);
1938 } 1938 }
1939 static flattenString(str) { 1939 static flattenString(str) {
1940 return str.charCodeAt(0) == 0 ? str : str; 1940 return str.charCodeAt(0) == 0 ? str : str;
(...skipping 24 matching lines...) Expand all
1965 checkInt(seconds); 1965 checkInt(seconds);
1966 checkInt(milliseconds); 1966 checkInt(milliseconds);
1967 checkBool(isUtc); 1967 checkBool(isUtc);
1968 let jsMonth = dart.dsend(month, '-', 1); 1968 let jsMonth = dart.dsend(month, '-', 1);
1969 let value = null; 1969 let value = null;
1970 if (isUtc) { 1970 if (isUtc) {
1971 value = Date.UTC(years, jsMonth, day, hours, minutes, seconds, milliseco nds); 1971 value = Date.UTC(years, jsMonth, day, hours, minutes, seconds, milliseco nds);
1972 } else { 1972 } else {
1973 value = new Date(years, jsMonth, day, hours, minutes, seconds, milliseco nds).valueOf(); 1973 value = new Date(years, jsMonth, day, hours, minutes, seconds, milliseco nds).valueOf();
1974 } 1974 }
1975 if (core.bool['||'](dart.dsend(dart.dload(value, 'isNaN'), '||', dart.dsen d(value, '<', -dart.notNull(MAX_MILLISECONDS_SINCE_EPOCH))), dart.dsend(value, ' >', MAX_MILLISECONDS_SINCE_EPOCH))) { 1975 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))) {
1976 return null; 1976 return null;
1977 } 1977 }
1978 if (dart.dsend(dart.dsend(years, '<=', 0), '||', dart.dsend(years, '<', 10 0))) 1978 if (dart.dsend(dart.dsend(years, '<=', 0), '||', dart.dsend(years, '<', 10 0)))
1979 return Primitives.patchUpY2K(value, years, isUtc); 1979 return Primitives.patchUpY2K(value, years, isUtc);
1980 return value; 1980 return value;
1981 } 1981 }
1982 static patchUpY2K(value, years, isUtc) { 1982 static patchUpY2K(value, years, isUtc) {
1983 let date = new Date(value); 1983 let date = new Date(value);
1984 if (isUtc) { 1984 if (isUtc) {
1985 date.setUTCFullYear(years); 1985 date.setUTCFullYear(years);
(...skipping 612 matching lines...) Expand 10 before | Expand all | Expand 10 after
2598 } else if (numberOfArguments == 3) { 2598 } else if (numberOfArguments == 3) {
2599 return _foreign_helper.JS_CALL_IN_ISOLATE(isolate, () => dart.dcall(closur e, arg1, arg2, arg3)); 2599 return _foreign_helper.JS_CALL_IN_ISOLATE(isolate, () => dart.dcall(closur e, arg1, arg2, arg3));
2600 } else if (numberOfArguments == 4) { 2600 } else if (numberOfArguments == 4) {
2601 return _foreign_helper.JS_CALL_IN_ISOLATE(isolate, () => dart.dcall(closur e, arg1, arg2, arg3, arg4)); 2601 return _foreign_helper.JS_CALL_IN_ISOLATE(isolate, () => dart.dcall(closur e, arg1, arg2, arg3, arg4));
2602 } else { 2602 } else {
2603 throw new core.Exception('Unsupported number of arguments for wrapped clos ure'); 2603 throw new core.Exception('Unsupported number of arguments for wrapped clos ure');
2604 } 2604 }
2605 } 2605 }
2606 // Function convertDartClosureToJS: (dynamic, int) → dynamic 2606 // Function convertDartClosureToJS: (dynamic, int) → dynamic
2607 function convertDartClosureToJS(closure, arity) { 2607 function convertDartClosureToJS(closure, arity) {
2608 if (closure == null) 2608 return closure;
2609 return null;
2610 let func = closure.$identity;
2611 if (!!func)
2612 return func;
2613 func = function(closure, arity, context, invoke) {
2614 return function(a1, a2, a3, a4) {
2615 return invoke(closure, context, arity, a1, a2, a3, a4);
2616 };
2617 }(closure, arity, _foreign_helper.JS_CURRENT_ISOLATE_CONTEXT(), _foreign_hel per.DART_CLOSURE_TO_JS(invokeClosure));
2618 closure.$identity = func;
2619 return func;
2620 } 2609 }
2621 class Closure extends core.Object { 2610 class Closure extends core.Object {
2622 Closure() { 2611 Closure() {
2623 } 2612 }
2624 static fromTearOff(receiver, functions, reflectionInfo, isStatic, jsArgument s, propertyName) { 2613 static fromTearOff(receiver, functions, reflectionInfo, isStatic, jsArgument s, propertyName) {
2625 _foreign_helper.JS_EFFECT(() => { 2614 _foreign_helper.JS_EFFECT(() => {
2626 BoundClosure.receiverOf(dart.as(void 0, BoundClosure)); 2615 BoundClosure.receiverOf(dart.as(void 0, BoundClosure));
2627 BoundClosure.selfOf(dart.as(void 0, BoundClosure)); 2616 BoundClosure.selfOf(dart.as(void 0, BoundClosure));
2628 }); 2617 });
2629 let func = functions[0]; 2618 let func = functions[0];
(...skipping 781 matching lines...) Expand 10 before | Expand all | Expand 10 after
3411 let rti = dart.dsend(this.namedParameters[name], 'toRti'); 3400 let rti = dart.dsend(this.namedParameters[name], 'toRti');
3412 namedRti[name] = rti; 3401 namedRti[name] = rti;
3413 } 3402 }
3414 result[_foreign_helper.JS_FUNCTION_TYPE_NAMED_PARAMETERS_TAG()] = namedR ti; 3403 result[_foreign_helper.JS_FUNCTION_TYPE_NAMED_PARAMETERS_TAG()] = namedR ti;
3415 } 3404 }
3416 return result; 3405 return result;
3417 } 3406 }
3418 static listToRti(list) { 3407 static listToRti(list) {
3419 list = list; 3408 list = list;
3420 let result = []; 3409 let result = [];
3421 for (let i = 0; core.int['<'](i, dart.dload(list, 'length')); i = dart.not Null(i) + 1) { 3410 for (let i = 0; i['<'](dart.dload(list, 'length')); i = dart.notNull(i) + 1) {
3422 result.push(dart.dsend(dart.dindex(list, i), 'toRti')); 3411 result.push(dart.dsend(dart.dindex(list, i), 'toRti'));
3423 } 3412 }
3424 return result; 3413 return result;
3425 } 3414 }
3426 toString() { 3415 toString() {
3427 let result = '('; 3416 let result = '(';
3428 let needsComma = false; 3417 let needsComma = false;
3429 if (this.parameterTypes != null) { 3418 if (this.parameterTypes != null) {
3430 for (let i = 0; dart.notNull(i) < dart.notNull(this.parameterTypes[core. $length]); i = dart.notNull(i) + 1) { 3419 for (let i = 0; dart.notNull(i) < dart.notNull(this.parameterTypes[core. $length]); i = dart.notNull(i) + 1) {
3431 let type = this.parameterTypes[core.$get](i); 3420 let type = this.parameterTypes[core.$get](i);
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
3478 function buildFunctionType(returnType, parameterTypes, optionalParameterTypes) { 3467 function buildFunctionType(returnType, parameterTypes, optionalParameterTypes) {
3479 return new RuntimeFunctionType(dart.as(returnType, RuntimeType), dart.as(par ameterTypes, core.List$(RuntimeType)), dart.as(optionalParameterTypes, core.List $(RuntimeType)), null); 3468 return new RuntimeFunctionType(dart.as(returnType, RuntimeType), dart.as(par ameterTypes, core.List$(RuntimeType)), dart.as(optionalParameterTypes, core.List $(RuntimeType)), null);
3480 } 3469 }
3481 // Function buildNamedFunctionType: (dynamic, dynamic, dynamic) → RuntimeFunct ionType 3470 // Function buildNamedFunctionType: (dynamic, dynamic, dynamic) → RuntimeFunct ionType
3482 function buildNamedFunctionType(returnType, parameterTypes, namedParameters) { 3471 function buildNamedFunctionType(returnType, parameterTypes, namedParameters) {
3483 return new RuntimeFunctionType(dart.as(returnType, RuntimeType), dart.as(par ameterTypes, core.List$(RuntimeType)), null, namedParameters); 3472 return new RuntimeFunctionType(dart.as(returnType, RuntimeType), dart.as(par ameterTypes, core.List$(RuntimeType)), null, namedParameters);
3484 } 3473 }
3485 // Function buildInterfaceType: (dynamic, dynamic) → RuntimeType 3474 // Function buildInterfaceType: (dynamic, dynamic) → RuntimeType
3486 function buildInterfaceType(rti, typeArguments) { 3475 function buildInterfaceType(rti, typeArguments) {
3487 let name = dart.as(rti.name, core.String); 3476 let name = dart.as(rti.name, core.String);
3488 if (core.bool['||'](typeArguments == null, dart.dload(typeArguments, 'isEmpt y'))) { 3477 if ((typeArguments == null)['||'](dart.dload(typeArguments, 'isEmpty'))) {
3489 return new RuntimeTypePlain(name); 3478 return new RuntimeTypePlain(name);
3490 } 3479 }
3491 return new RuntimeTypeGeneric(name, dart.as(typeArguments, core.List$(Runtim eType)), null); 3480 return new RuntimeTypeGeneric(name, dart.as(typeArguments, core.List$(Runtim eType)), null);
3492 } 3481 }
3493 class DynamicRuntimeType extends RuntimeType { 3482 class DynamicRuntimeType extends RuntimeType {
3494 DynamicRuntimeType() { 3483 DynamicRuntimeType() {
3495 super.RuntimeType(); 3484 super.RuntimeType();
3496 } 3485 }
3497 toString() { 3486 toString() {
3498 return 'dynamic'; 3487 return 'dynamic';
(...skipping 584 matching lines...) Expand 10 before | Expand all | Expand 10 after
4083 exports.jsonEncodeNative = jsonEncodeNative; 4072 exports.jsonEncodeNative = jsonEncodeNative;
4084 exports.getIsolateAffinityTag = getIsolateAffinityTag; 4073 exports.getIsolateAffinityTag = getIsolateAffinityTag;
4085 exports.LoadLibraryFunctionType = LoadLibraryFunctionType; 4074 exports.LoadLibraryFunctionType = LoadLibraryFunctionType;
4086 exports.DeferredLoadCallback = DeferredLoadCallback; 4075 exports.DeferredLoadCallback = DeferredLoadCallback;
4087 exports.loadDeferredLibrary = loadDeferredLibrary; 4076 exports.loadDeferredLibrary = loadDeferredLibrary;
4088 exports.MainError = MainError; 4077 exports.MainError = MainError;
4089 exports.missingMain = missingMain; 4078 exports.missingMain = missingMain;
4090 exports.badMain = badMain; 4079 exports.badMain = badMain;
4091 exports.mainHasTooManyParameters = mainHasTooManyParameters; 4080 exports.mainHasTooManyParameters = mainHasTooManyParameters;
4092 })(_js_helper, core, collection, _internal, _foreign_helper, _js_embedded_names, _interceptors, _js_names, async, _isolate_helper); 4081 })(_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