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

Unified Diff: lib/runtime/dart/_js_helper.js

Issue 1042003002: fix list literal initialization call fix typeof calls for primitive JS types add dart/collection.js… (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Created 5 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: lib/runtime/dart/_js_helper.js
diff --git a/lib/runtime/dart/_js_helper.js b/lib/runtime/dart/_js_helper.js
index 87f88ea478bf6b5d57f70fc1459c46bd9810f6e1..884110811015798784bb76c1f2840736c928b9be 100644
--- a/lib/runtime/dart/_js_helper.js
+++ b/lib/runtime/dart/_js_helper.js
@@ -75,7 +75,7 @@ var _js_helper;
return this.values.any((value) => dart.equals(value, needle));
}
containsKey(key) {
- if (!(typeof key == string))
+ if (!(typeof key == 'string'))
return false;
if (dart.equals('__proto__', key))
return false;
@@ -115,7 +115,7 @@ var _js_helper;
super.ConstantStringMap$_(dart.as(length, core.int), jsObject, dart.as(keys, core.List$(K)));
}
containsKey(key) {
- if (!(typeof key == string))
+ if (!(typeof key == 'string'))
return false;
if (dart.equals('__proto__', key))
return true;
@@ -413,7 +413,7 @@ var _js_helper;
if (typeof dartNativeDispatchHooksTransformer != "undefined") {
let transformers = dartNativeDispatchHooksTransformer;
if (typeof transformers == "function") {
- transformers = new List.from([transformers]);
+ transformers = new core.List.from([transformers]);
}
if (transformers.constructor == Array) {
for (let i = 0; dart.notNull(i) < transformers.length; i = dart.notNull(i) + 1) {
@@ -580,8 +580,8 @@ var _js_helper;
_MatchImplementation(pattern, match$) {
this.pattern = pattern;
this[_match] = match$;
- dart.assert(typeof this[_match].input == string);
- dart.assert(typeof this[_match].index == number);
+ dart.assert(typeof this[_match].input == 'string');
+ dart.assert(typeof this[_match].index == 'number');
}
get input() {
return this[_match].input;
@@ -602,7 +602,7 @@ var _js_helper;
return dart.notNull(this[_match].length) - 1;
}
groups(groups) {
- let out = dart.as(new List.from([]), core.List$(core.String));
+ let out = dart.as(new core.List.from([]), core.List$(core.String));
for (let i of groups) {
out.add(this.group(i));
}
@@ -713,7 +713,7 @@ var _js_helper;
}
// Function stringContainsUnchecked: (dynamic, dynamic, dynamic) → dynamic
function stringContainsUnchecked(receiver, other, startIndex) {
- if (typeof other == string) {
+ if (typeof other == 'string') {
return !dart.equals(dart.dinvoke(receiver, 'indexOf', other, startIndex), -1);
} else if (dart.is(other, JSSyntaxRegExp)) {
return dart.dinvoke(other, 'hasMatch', dart.dinvoke(receiver, 'substring', startIndex));
@@ -740,7 +740,7 @@ var _js_helper;
// Function stringReplaceAllUnchecked: (dynamic, dynamic, dynamic) → dynamic
function stringReplaceAllUnchecked(receiver, from, to) {
checkString(to);
- if (typeof from == string) {
+ if (typeof from == 'string') {
if (dart.equals(from, "")) {
if (dart.equals(receiver, "")) {
return to;
@@ -785,7 +785,7 @@ var _js_helper;
onMatch = _matchString;
if (onNonMatch === null)
onNonMatch = _stringIdentity;
- if (typeof pattern == string) {
+ if (typeof pattern == 'string') {
return stringReplaceAllStringFuncUnchecked(receiver, pattern, onMatch, onNonMatch);
}
let buffer = new core.StringBuffer();
@@ -847,7 +847,7 @@ var _js_helper;
function stringReplaceFirstUnchecked(receiver, from, to, startIndex) {
if (startIndex === void 0)
startIndex = 0;
- if (typeof from == string) {
+ if (typeof from == 'string') {
let index = dart.dinvoke(receiver, 'indexOf', from, startIndex);
if (dart.dbinary(index, '<', 0))
return receiver;
@@ -954,7 +954,7 @@ var _js_helper;
return getRuntimeTypeAsString(type, {onTypeVariable: onTypeVariable});
} else if (isJsFunction(type)) {
return getConstructorName(type);
- } else if (typeof type == number) {
+ } else if (typeof type == 'number') {
if (onTypeVariable === null) {
return dart.as(dart.dinvoke(type, 'toString'), core.String);
} else {
@@ -1347,7 +1347,7 @@ var _js_helper;
}
// Function S: (dynamic) → String
function S(value) {
- if (typeof value == string)
+ if (typeof value == 'string')
return dart.as(value, core.String);
if (dart.is(value, core.num)) {
if (!dart.equals(value, 0)) {
@@ -1361,7 +1361,7 @@ var _js_helper;
return 'null';
}
let res = dart.dinvoke(value, 'toString');
- if (!(typeof res == string))
+ if (!(typeof res == 'string'))
throw new core.ArgumentError(value);
return dart.as(res, core.String);
}
@@ -1432,11 +1432,11 @@ var _js_helper;
}
get positionalArguments() {
if (this.isGetter)
- return /* Unimplemented const */new List.from([]);
+ return /* Unimplemented const */new core.List.from([]);
let argumentCount = dart.notNull(this[_arguments].length) - dart.notNull(this[_namedArgumentNames].length);
if (argumentCount === 0)
- return /* Unimplemented const */new List.from([]);
- let list = new List.from([]);
+ return /* Unimplemented const */new core.List.from([]);
+ let list = new core.List.from([]);
for (let index = 0; dart.notNull(index) < dart.notNull(argumentCount); index = dart.notNull(index) + 1) {
list.add(this[_arguments].get(index));
}
@@ -1531,7 +1531,7 @@ var _js_helper;
if (!dart.is(arguments, _interceptors.JSArray))
arguments = new core.List.from(arguments);
} else {
- arguments = new List.from([victim]);
+ arguments = new core.List.from([victim]);
arguments.addAll(arguments);
if (this.cachedInterceptor !== null)
receiver = this.cachedInterceptor;
@@ -1562,7 +1562,7 @@ var _js_helper;
providedArgumentCount = arguments.length;
}
} else {
- arguments = new List.from([victim]);
+ arguments = new core.List.from([victim]);
arguments.addAll(arguments);
if (this.cachedInterceptor !== null)
receiver = this.cachedInterceptor;
@@ -1744,7 +1744,7 @@ var _js_helper;
return handleError(source);
}
} else {
- if (!(typeof radix == number))
+ if (!(typeof radix == 'number'))
throw new core.ArgumentError("Radix is not an integer");
if (dart.notNull(radix) < 2 || dart.notNull(radix) > 36) {
throw new core.RangeError(`Radix ${radix} not in range 2..36`);
@@ -1798,7 +1798,7 @@ var _js_helper;
let name = constructorNameFallback(_interceptors.getInterceptor(object));
if (dart.equals(name, 'Object')) {
let decompiled = String(object.constructor).match(/^\s*function\s*(\S*)\s*\(/)[1];
- if (typeof decompiled == string)
+ if (typeof decompiled == 'string')
if (/^\w+$/.test(decompiled))
name = dart.as(decompiled, core.String);
}
@@ -1861,9 +1861,9 @@ var _js_helper;
return result;
}
static stringFromCodePoints(codePoints) {
- let a = new List.from([]);
+ let a = new core.List$(core.int).from([]);
for (let i of codePoints) {
- if (!(typeof i == number))
+ if (!(typeof i == 'number'))
throw new core.ArgumentError(i);
if (dart.dbinary(i, '<=', 65535)) {
a.add(dart.as(i, core.int));
@@ -1878,7 +1878,7 @@ var _js_helper;
}
static stringFromCharCodes(charCodes) {
for (let i of charCodes) {
- if (!(typeof i == number))
+ if (!(typeof i == 'number'))
throw new core.ArgumentError(i);
if (dart.dbinary(i, '<', 0))
throw new core.ArgumentError(i);
@@ -1988,7 +1988,7 @@ var _js_helper;
return (dart.notNull(weekday) + 6) % 7 + 1;
}
static valueFromDateString(str) {
- if (!(typeof str == string))
+ if (!(typeof str == 'string'))
throw new core.ArgumentError(str);
let value = Date.parse(str);
if (value.isNaN)
@@ -1996,21 +1996,21 @@ var _js_helper;
return value;
}
static getProperty(object, key) {
- if (dart.notNull(object === null) || dart.notNull(typeof object == boolean) || dart.notNull(dart.is(object, core.num)) || dart.notNull(typeof object == string)) {
+ if (dart.notNull(object === null) || dart.notNull(typeof object == 'boolean') || dart.notNull(dart.is(object, core.num)) || dart.notNull(typeof object == 'string')) {
throw new core.ArgumentError(object);
}
return object[key];
}
static setProperty(object, key, value) {
- if (dart.notNull(object === null) || dart.notNull(typeof object == boolean) || dart.notNull(dart.is(object, core.num)) || dart.notNull(typeof object == string)) {
+ if (dart.notNull(object === null) || dart.notNull(typeof object == 'boolean') || dart.notNull(dart.is(object, core.num)) || dart.notNull(typeof object == 'string')) {
throw new core.ArgumentError(object);
}
object[key] = value;
}
static functionNoSuchMethod(func, positionalArguments, namedArguments) {
let argumentCount = 0;
- let arguments = new List.from([]);
- let namedArgumentList = new List.from([]);
+ let arguments = new core.List.from([]);
+ let namedArgumentList = new core.List.from([]);
if (positionalArguments !== null) {
argumentCount = positionalArguments.length;
arguments.addAll(positionalArguments);
@@ -2041,7 +2041,7 @@ var _js_helper;
}
argumentCount = arguments.length;
} else {
- arguments = new List.from([]);
+ arguments = new core.List.from([]);
}
let selectorName = `${_foreign_helper.JS_GET_NAME("CALL_PREFIX")}$${argumentCount}`;
let jsFunction = func[selectorName];
@@ -2066,7 +2066,7 @@ var _js_helper;
if (positionalArguments !== null) {
positionalArguments = new core.List.from(positionalArguments);
} else {
- positionalArguments = new List.from([]);
+ positionalArguments = new core.List.from([]);
}
if (info.requiredParameterCount !== positionalArguments.length) {
return functionNoSuchMethod(func, positionalArguments, namedArguments);
@@ -2130,7 +2130,7 @@ var _js_helper;
function ioore(receiver, index) {
if (receiver === null)
dart.dload(receiver, 'length');
- if (!(typeof index == number))
+ if (!(typeof index == 'number'))
iae(index);
throw new core.RangeError.value(dart.as(index, core.num));
}
@@ -2153,21 +2153,21 @@ var _js_helper;
}
// Function checkInt: (dynamic) → dynamic
function checkInt(value) {
- if (!(typeof value == number)) {
+ if (!(typeof value == 'number')) {
throw new core.ArgumentError(value);
}
return value;
}
// Function checkBool: (dynamic) → dynamic
function checkBool(value) {
- if (!(typeof value == boolean)) {
+ if (!(typeof value == 'boolean')) {
throw new core.ArgumentError(value);
}
return value;
}
// Function checkString: (dynamic) → dynamic
function checkString(value) {
- if (!(typeof value == string)) {
+ if (!(typeof value == 'string')) {
throw new core.ArgumentError(value);
}
return value;
@@ -2264,7 +2264,7 @@ var _js_helper;
message = message.replace(new RegExp(ESCAPE_REGEXP, 'g'), '\\$&');
let match = dart.as(message.match(/\\\$[a-zA-Z]+\\\$/g), core.List$(core.String));
if (match === null)
- match = dart.as(new List.from([]), core.List$(core.String));
+ match = dart.as(new core.List.from([]), core.List$(core.String));
let arguments = match.indexOf('\\$arguments\\$');
let argumentsExpr = match.indexOf('\\$argumentsExpr\\$');
let expr = match.indexOf('\\$expr\\$');
@@ -2442,10 +2442,14 @@ var _js_helper;
if (ieFacilityNumber === 10) {
switch (ieErrorCode) {
case 438:
+ {
return saveStackTrace(new JsNoSuchMethodError(`${message} (Error ${ieErrorCode})`, null));
+ }
case 445:
case 5007:
+ {
return saveStackTrace(new NullError(`${message} (Error ${ieErrorCode})`, null));
+ }
}
}
}
@@ -2469,16 +2473,16 @@ var _js_helper;
} else if (dart.notNull((match = dart.dinvoke(nullCall, 'matchTypeError', message)) !== null) || dart.notNull((match = dart.dinvoke(nullLiteralCall, 'matchTypeError', message)) !== null) || dart.notNull((match = dart.dinvoke(undefCall, 'matchTypeError', message)) !== null) || dart.notNull((match = dart.dinvoke(undefLiteralCall, 'matchTypeError', message)) !== null) || dart.notNull((match = dart.dinvoke(nullProperty, 'matchTypeError', message)) !== null) || dart.notNull((match = dart.dinvoke(nullLiteralCall, 'matchTypeError', message)) !== null) || dart.notNull((match = dart.dinvoke(undefProperty, 'matchTypeError', message)) !== null) || dart.notNull((match = dart.dinvoke(undefLiteralProperty, 'matchTypeError', message)) !== null)) {
return saveStackTrace(new NullError(dart.as(message, core.String), match));
}
- return saveStackTrace(new UnknownJsTypeError(dart.as(typeof message == string ? message : '', core.String)));
+ return saveStackTrace(new UnknownJsTypeError(dart.as(typeof message == 'string' ? message : '', core.String)));
}
if (ex instanceof RangeError) {
- if (dart.notNull(typeof message == string) && dart.notNull(contains(dart.as(message, core.String), 'call stack'))) {
+ if (dart.notNull(typeof message == 'string') && dart.notNull(contains(dart.as(message, core.String), 'call stack'))) {
return new core.StackOverflowError();
}
return saveStackTrace(new core.ArgumentError());
}
if (typeof InternalError == "function" && ex instanceof InternalError) {
- if (dart.notNull(typeof message == string) && dart.notNull(dart.equals(message, 'too much recursion'))) {
+ if (dart.notNull(typeof message == 'string') && dart.notNull(dart.equals(message, 'too much recursion'))) {
return new core.StackOverflowError();
}
}
@@ -2625,47 +2629,61 @@ var _js_helper;
arity = -1;
switch (arity) {
case 0:
+ {
return function(n, S) {
return function() {
return S(this)[n]();
};
}(stubName, getSelf);
+ }
case 1:
+ {
return function(n, S) {
return function(a) {
return S(this)[n](a);
};
}(stubName, getSelf);
+ }
case 2:
+ {
return function(n, S) {
return function(a, b) {
return S(this)[n](a, b);
};
}(stubName, getSelf);
+ }
case 3:
+ {
return function(n, S) {
return function(a, b, c) {
return S(this)[n](a, b, c);
};
}(stubName, getSelf);
+ }
case 4:
+ {
return function(n, S) {
return function(a, b, c, d) {
return S(this)[n](a, b, c, d);
};
}(stubName, getSelf);
+ }
case 5:
+ {
return function(n, S) {
return function(a, b, c, d, e) {
return S(this)[n](a, b, c, d, e);
};
}(stubName, getSelf);
+ }
default:
+ {
return function(f, s) {
return function() {
return f.apply(s(this), arguments);
};
}(func, getSelf);
+ }
}
}
static get isCsp() {
@@ -2695,44 +2713,59 @@ var _js_helper;
arity = -1;
switch (arity) {
case 0:
+ {
throw new RuntimeError('Intercepted function with no arguments.');
+ }
case 1:
+ {
return function(n, s, r) {
return function() {
return s(this)[n](r(this));
};
}(name, getSelf, getReceiver);
+ }
case 2:
+ {
return function(n, s, r) {
return function(a) {
return s(this)[n](r(this), a);
};
}(name, getSelf, getReceiver);
+ }
case 3:
+ {
return function(n, s, r) {
return function(a, b) {
return s(this)[n](r(this), a, b);
};
}(name, getSelf, getReceiver);
+ }
case 4:
+ {
return function(n, s, r) {
return function(a, b, c) {
return s(this)[n](r(this), a, b, c);
};
}(name, getSelf, getReceiver);
+ }
case 5:
+ {
return function(n, s, r) {
return function(a, b, c, d) {
return s(this)[n](r(this), a, b, c, d);
};
}(name, getSelf, getReceiver);
+ }
case 6:
+ {
return function(n, s, r) {
return function(a, b, c, d, e) {
return s(this)[n](r(this), a, b, c, d, e);
};
}(name, getSelf, getReceiver);
+ }
default:
+ {
return function(f, s, r, a) {
return function() {
a = [r(this)];
@@ -2740,6 +2773,7 @@ var _js_helper;
return f.apply(s(this), a);
};
}(func, getSelf, getReceiver);
+ }
}
}
static forwardInterceptedCallTo(receiver, func) {
@@ -2872,7 +2906,7 @@ var _js_helper;
}
// Function boolConversionCheck: (dynamic) → dynamic
function boolConversionCheck(value) {
- if (typeof value == boolean)
+ if (typeof value == 'boolean')
return value;
boolTypeCheck(value);
dart.assert(value !== null);
@@ -2882,13 +2916,13 @@ var _js_helper;
function stringTypeCheck(value) {
if (value === null)
return value;
- if (typeof value == string)
+ if (typeof value == 'string')
return value;
throw new TypeErrorImplementation(value, 'String');
}
// Function stringTypeCast: (dynamic) → dynamic
function stringTypeCast(value) {
- if (dart.notNull(typeof value == string) || dart.notNull(value === null))
+ if (dart.notNull(typeof value == 'string') || dart.notNull(value === null))
return value;
throw new CastErrorImplementation(Primitives.objectTypeName(value), 'String');
}
@@ -2896,13 +2930,13 @@ var _js_helper;
function doubleTypeCheck(value) {
if (value === null)
return value;
- if (typeof value == number)
+ if (typeof value == 'number')
return value;
throw new TypeErrorImplementation(value, 'double');
}
// Function doubleTypeCast: (dynamic) → dynamic
function doubleTypeCast(value) {
- if (dart.notNull(typeof value == number) || dart.notNull(value === null))
+ if (dart.notNull(typeof value == 'number') || dart.notNull(value === null))
return value;
throw new CastErrorImplementation(Primitives.objectTypeName(value), 'double');
}
@@ -2924,13 +2958,13 @@ var _js_helper;
function boolTypeCheck(value) {
if (value === null)
return value;
- if (typeof value == boolean)
+ if (typeof value == 'boolean')
return value;
throw new TypeErrorImplementation(value, 'bool');
}
// Function boolTypeCast: (dynamic) → dynamic
function boolTypeCast(value) {
- if (dart.notNull(typeof value == boolean) || dart.notNull(value === null))
+ if (dart.notNull(typeof value == 'boolean') || dart.notNull(value === null))
return value;
throw new CastErrorImplementation(Primitives.objectTypeName(value), 'bool');
}
@@ -2938,13 +2972,13 @@ var _js_helper;
function intTypeCheck(value) {
if (value === null)
return value;
- if (typeof value == number)
+ if (typeof value == 'number')
return value;
throw new TypeErrorImplementation(value, 'int');
}
// Function intTypeCast: (dynamic) → dynamic
function intTypeCast(value) {
- if (dart.notNull(typeof value == number) || dart.notNull(value === null))
+ if (dart.notNull(typeof value == 'number') || dart.notNull(value === null))
return value;
throw new CastErrorImplementation(Primitives.objectTypeName(value), 'int');
}
@@ -2993,7 +3027,7 @@ var _js_helper;
function numberOrStringSuperTypeCheck(value, property) {
if (value === null)
return value;
- if (typeof value == string)
+ if (typeof value == 'string')
return value;
if (dart.is(value, core.num))
return value;
@@ -3003,7 +3037,7 @@ var _js_helper;
}
// Function numberOrStringSuperTypeCast: (dynamic, dynamic) → dynamic
function numberOrStringSuperTypeCast(value, property) {
- if (typeof value == string)
+ if (typeof value == 'string')
return value;
if (dart.is(value, core.num))
return value;
@@ -3013,7 +3047,7 @@ var _js_helper;
function numberOrStringSuperNativeTypeCheck(value, property) {
if (value === null)
return value;
- if (typeof value == string)
+ if (typeof value == 'string')
return value;
if (dart.is(value, core.num))
return value;
@@ -3025,7 +3059,7 @@ var _js_helper;
function numberOrStringSuperNativeTypeCast(value, property) {
if (value === null)
return value;
- if (typeof value == string)
+ if (typeof value == 'string')
return value;
if (dart.is(value, core.num))
return value;
@@ -3037,7 +3071,7 @@ var _js_helper;
function stringSuperTypeCheck(value, property) {
if (value === null)
return value;
- if (typeof value == string)
+ if (typeof value == 'string')
return value;
if (!!value[property])
return value;
@@ -3045,7 +3079,7 @@ var _js_helper;
}
// Function stringSuperTypeCast: (dynamic, dynamic) → dynamic
function stringSuperTypeCast(value, property) {
- if (typeof value == string)
+ if (typeof value == 'string')
return value;
return propertyTypeCast(value, property);
}
@@ -3053,7 +3087,7 @@ var _js_helper;
function stringSuperNativeTypeCheck(value, property) {
if (value === null)
return value;
- if (typeof value == string)
+ if (typeof value == 'string')
return value;
if (_interceptors.getInterceptor(value)[property])
return value;
@@ -3061,7 +3095,7 @@ var _js_helper;
}
// Function stringSuperNativeTypeCast: (dynamic, dynamic) → dynamic
function stringSuperNativeTypeCast(value, property) {
- if (dart.notNull(typeof value == string) || dart.notNull(value === null))
+ if (dart.notNull(typeof value == 'string') || dart.notNull(value === null))
return value;
if (_interceptors.getInterceptor(value)[property])
return value;
@@ -3173,10 +3207,10 @@ var _js_helper;
}
// Function assertHelper: (dynamic) → void
function assertHelper(condition) {
- if (!(typeof condition == boolean)) {
+ if (!(typeof condition == 'boolean')) {
if (dart.is(condition, core.Function))
condition = dart.dinvokef(condition);
- if (!(typeof condition == boolean)) {
+ if (!(typeof condition == 'boolean')) {
throw new TypeErrorImplementation(condition, 'bool');
}
}
@@ -3424,7 +3458,7 @@ var _js_helper;
} else if (rti.constructor == Array) {
let list = dart.as(rti, core.List);
let name = list.get(0).name;
- let arguments = new List.from([]);
+ let arguments = new core.List.from([]);
for (let i = 1; dart.notNull(i) < dart.notNull(list.length); i = dart.notNull(i) + 1) {
arguments.add(convertRtiToRuntimeType(list.get(i)));
}

Powered by Google App Engine
This is Rietveld 408576698