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

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

Issue 1147143007: fixes #206, add checking for unary ops (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 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 abd9a93d6e7dd93ee4e07bc832d010bb5158b2e2..506e91eadfed461a6a6b0fd0366211c54912fca4 100644
--- a/lib/runtime/dart/_js_helper.js
+++ b/lib/runtime/dart/_js_helper.js
@@ -959,7 +959,7 @@ var _isolate_helper = dart.lazyImport(_isolate_helper);
startIndex = 0;
if (typeof from == 'string') {
let index = dart.dsend(receiver, 'indexOf', from, startIndex);
- if (dart.dsend(index, '<', 0))
+ if (dart.as(dart.dsend(index, '<', 0), core.bool))
return receiver;
return `${dart.dsend(receiver, 'substring', 0, index)}${to}` + `${dart.dsend(receiver, 'substring', dart.dsend(index, '+', dart.dload(from, 'length')))}`;
} else if (dart.is(from, JSSyntaxRegExp)) {
@@ -1216,9 +1216,9 @@ var _isolate_helper = dart.lazyImport(_isolate_helper);
rti = rti.slice();
rti.splice(0, 0, type);
type = rti;
- } else if (hasField(t, `${_foreign_helper.JS_FUNCTION_TYPE_TAG()}`)) {
+ } else if (dart.as(hasField(t, `${_foreign_helper.JS_FUNCTION_TYPE_TAG()}`), core.bool)) {
let signatureName = `${_foreign_helper.JS_OPERATOR_IS_PREFIX()}_${getField(t, _foreign_helper.JS_FUNCTION_TYPE_TAG())}`;
- if (hasField(o, signatureName))
+ if (dart.as(hasField(o, signatureName), core.bool))
return true;
let targetSignatureFunction = getField(o, `${_foreign_helper.JS_SIGNATURE_NAME()}`);
if (targetSignatureFunction == null)
@@ -1253,10 +1253,10 @@ var _isolate_helper = dart.lazyImport(_isolate_helper);
return true;
if (dart.notNull(s == null) || dart.notNull(t == null))
return true;
- if (hasField(t, `${_foreign_helper.JS_FUNCTION_TYPE_TAG()}`)) {
+ if (dart.as(hasField(t, `${_foreign_helper.JS_FUNCTION_TYPE_TAG()}`), core.bool)) {
return isFunctionSubtype(s, t);
}
- if (hasField(s, `${_foreign_helper.JS_FUNCTION_TYPE_TAG()}`)) {
+ if (dart.as(hasField(s, `${_foreign_helper.JS_FUNCTION_TYPE_TAG()}`), core.bool)) {
return getConstructorName(t) == _foreign_helper.JS_FUNCTION_CLASS_NAME();
}
let typeOfS = isJsArray(s) ? getIndex(s, 0) : s;
@@ -1266,7 +1266,7 @@ var _isolate_helper = dart.lazyImport(_isolate_helper);
if (isNotIdentical(typeOfT, typeOfS)) {
let test = `${_foreign_helper.JS_OPERATOR_IS_PREFIX()}${name}`;
let typeOfSPrototype = typeOfS.prototype;
- if (hasNoField(typeOfSPrototype, test))
+ if (dart.as(hasNoField(typeOfSPrototype, test), core.bool))
return false;
let field = `${_foreign_helper.JS_OPERATOR_AS_PREFIX()}${runtimeTypeToString(typeOfT)}`;
substitution = getField(typeOfSPrototype, field);
@@ -1330,13 +1330,13 @@ var _isolate_helper = dart.lazyImport(_isolate_helper);
dart.fn(areAssignableMaps, core.bool, [core.Object, core.Object]);
function isFunctionSubtype(s, t) {
dart.assert(hasField(t, `${_foreign_helper.JS_FUNCTION_TYPE_TAG()}`));
- if (hasNoField(s, `${_foreign_helper.JS_FUNCTION_TYPE_TAG()}`))
+ if (dart.as(hasNoField(s, `${_foreign_helper.JS_FUNCTION_TYPE_TAG()}`), core.bool))
return false;
- if (hasField(s, `${_foreign_helper.JS_FUNCTION_TYPE_VOID_RETURN_TAG()}`)) {
+ if (dart.as(hasField(s, `${_foreign_helper.JS_FUNCTION_TYPE_VOID_RETURN_TAG()}`), core.bool)) {
if (dart.notNull(dart.as(hasNoField(t, `${_foreign_helper.JS_FUNCTION_TYPE_VOID_RETURN_TAG()}`), core.bool)) && dart.notNull(dart.as(hasField(t, `${_foreign_helper.JS_FUNCTION_TYPE_RETURN_TYPE_TAG()}`), core.bool))) {
return false;
}
- } else if (hasNoField(t, `${_foreign_helper.JS_FUNCTION_TYPE_VOID_RETURN_TAG()}`)) {
+ } else if (dart.as(hasNoField(t, `${_foreign_helper.JS_FUNCTION_TYPE_VOID_RETURN_TAG()}`), core.bool)) {
let sReturnType = getField(s, `${_foreign_helper.JS_FUNCTION_TYPE_RETURN_TYPE_TAG()}`);
let tReturnType = getField(t, `${_foreign_helper.JS_FUNCTION_TYPE_RETURN_TYPE_TAG()}`);
if (!dart.notNull(isAssignable(sReturnType, tReturnType)))
@@ -1425,7 +1425,7 @@ var _isolate_helper = dart.lazyImport(_isolate_helper);
}
dart.fn(hasField);
function hasNoField(object, name) {
- return dart.dsend(hasField(object, name), '!');
+ return !dart.notNull(dart.as(hasField(object, name), core.bool));
}
dart.fn(hasNoField);
function isJsFunction(o) {
@@ -1627,7 +1627,7 @@ var _isolate_helper = dart.lazyImport(_isolate_helper);
}
static invokeFromMirror(invocation, victim) {
let cached = invocation[_getCachedInvocation](victim);
- if (dart.dload(cached, 'isNoSuchMethod')) {
+ if (dart.as(dart.dload(cached, 'isNoSuchMethod'), core.bool)) {
return dart.dsend(cached, 'invokeOn', victim, invocation);
} else {
return dart.dsend(cached, 'invokeOn', victim, invocation[_arguments]);
@@ -2030,9 +2030,9 @@ var _isolate_helper = dart.lazyImport(_isolate_helper);
for (let i of dart.as(codePoints, core.Iterable)) {
if (!(typeof i == 'number'))
throw new core.ArgumentError(i);
- if (dart.dsend(i, '<=', 65535)) {
+ if (dart.as(dart.dsend(i, '<=', 65535), core.bool)) {
a[core.$add](dart.as(i, core.int));
- } else if (dart.dsend(i, '<=', 1114111)) {
+ } else if (dart.as(dart.dsend(i, '<=', 1114111), core.bool)) {
a[core.$add]((55296)['+'](dart.as(dart.dsend(dart.dsend(dart.dsend(i, '-', 65536), '>>', 10), '&', 1023), core.num)));
a[core.$add]((56320)['+'](dart.as(dart.dsend(i, '&', 1023), core.num)));
} else {
@@ -2045,19 +2045,19 @@ var _isolate_helper = dart.lazyImport(_isolate_helper);
for (let i of dart.as(charCodes, core.Iterable)) {
if (!(typeof i == 'number'))
throw new core.ArgumentError(i);
- if (dart.dsend(i, '<', 0))
+ if (dart.as(dart.dsend(i, '<', 0), core.bool))
throw new core.ArgumentError(i);
- if (dart.dsend(i, '>', 65535))
+ if (dart.as(dart.dsend(i, '>', 65535), core.bool))
return Primitives.stringFromCodePoints(charCodes);
}
return Primitives._fromCharCodeApply(dart.as(charCodes, core.List$(core.int)));
}
static stringFromCharCode(charCode) {
if (0 <= dart.notNull(dart.as(charCode, core.num))) {
- if (dart.dsend(charCode, '<=', 65535)) {
+ if (dart.as(dart.dsend(charCode, '<=', 65535), core.bool)) {
return String.fromCharCode(charCode);
}
- if (dart.dsend(charCode, '<=', 1114111)) {
+ if (dart.as(dart.dsend(charCode, '<=', 1114111), core.bool)) {
let bits = dart.dsend(charCode, '-', 65536);
let low = (56320)['|'](dart.as(dart.dsend(bits, '&', 1023), core.int));
let high = (55296)['|'](dart.as(dart.dsend(bits, '>>', 10), core.int));
@@ -2100,7 +2100,7 @@ var _isolate_helper = dart.lazyImport(_isolate_helper);
checkBool(isUtc);
let jsMonth = dart.dsend(month, '-', 1);
let value = null;
- if (isUtc) {
+ if (dart.as(isUtc, core.bool)) {
value = Date.UTC(years, jsMonth, day, hours, minutes, seconds, milliseconds);
} else {
value = new Date(years, jsMonth, day, hours, minutes, seconds, milliseconds).valueOf();
@@ -2114,7 +2114,7 @@ var _isolate_helper = dart.lazyImport(_isolate_helper);
}
static patchUpY2K(value, years, isUtc) {
let date = new Date(value);
- if (isUtc) {
+ if (dart.as(isUtc, core.bool)) {
date.setUTCFullYear(years);
} else {
date.setFullYear(years);
@@ -2128,28 +2128,28 @@ var _isolate_helper = dart.lazyImport(_isolate_helper);
return receiver.date;
}
static getYear(receiver) {
- return dart.dload(receiver, 'isUtc') ? Primitives.lazyAsJsDate(receiver).getUTCFullYear() + 0 : Primitives.lazyAsJsDate(receiver).getFullYear() + 0;
+ return dart.as(dart.dload(receiver, 'isUtc'), core.bool) ? Primitives.lazyAsJsDate(receiver).getUTCFullYear() + 0 : Primitives.lazyAsJsDate(receiver).getFullYear() + 0;
}
static getMonth(receiver) {
- return dart.dload(receiver, 'isUtc') ? Primitives.lazyAsJsDate(receiver).getUTCMonth() + 1 : Primitives.lazyAsJsDate(receiver).getMonth() + 1;
+ return dart.as(dart.dload(receiver, 'isUtc'), core.bool) ? Primitives.lazyAsJsDate(receiver).getUTCMonth() + 1 : Primitives.lazyAsJsDate(receiver).getMonth() + 1;
}
static getDay(receiver) {
- return dart.dload(receiver, 'isUtc') ? Primitives.lazyAsJsDate(receiver).getUTCDate() + 0 : Primitives.lazyAsJsDate(receiver).getDate() + 0;
+ return dart.as(dart.dload(receiver, 'isUtc'), core.bool) ? Primitives.lazyAsJsDate(receiver).getUTCDate() + 0 : Primitives.lazyAsJsDate(receiver).getDate() + 0;
}
static getHours(receiver) {
- return dart.dload(receiver, 'isUtc') ? Primitives.lazyAsJsDate(receiver).getUTCHours() + 0 : Primitives.lazyAsJsDate(receiver).getHours() + 0;
+ return dart.as(dart.dload(receiver, 'isUtc'), core.bool) ? Primitives.lazyAsJsDate(receiver).getUTCHours() + 0 : Primitives.lazyAsJsDate(receiver).getHours() + 0;
}
static getMinutes(receiver) {
- return dart.dload(receiver, 'isUtc') ? Primitives.lazyAsJsDate(receiver).getUTCMinutes() + 0 : Primitives.lazyAsJsDate(receiver).getMinutes() + 0;
+ return dart.as(dart.dload(receiver, 'isUtc'), core.bool) ? Primitives.lazyAsJsDate(receiver).getUTCMinutes() + 0 : Primitives.lazyAsJsDate(receiver).getMinutes() + 0;
}
static getSeconds(receiver) {
- return dart.dload(receiver, 'isUtc') ? Primitives.lazyAsJsDate(receiver).getUTCSeconds() + 0 : Primitives.lazyAsJsDate(receiver).getSeconds() + 0;
+ return dart.as(dart.dload(receiver, 'isUtc'), core.bool) ? Primitives.lazyAsJsDate(receiver).getUTCSeconds() + 0 : Primitives.lazyAsJsDate(receiver).getSeconds() + 0;
}
static getMilliseconds(receiver) {
- return dart.dload(receiver, 'isUtc') ? Primitives.lazyAsJsDate(receiver).getUTCMilliseconds() + 0 : Primitives.lazyAsJsDate(receiver).getMilliseconds() + 0;
+ return dart.as(dart.dload(receiver, 'isUtc'), core.bool) ? Primitives.lazyAsJsDate(receiver).getUTCMilliseconds() + 0 : Primitives.lazyAsJsDate(receiver).getMilliseconds() + 0;
}
static getWeekday(receiver) {
- let weekday = dart.dload(receiver, 'isUtc') ? Primitives.lazyAsJsDate(receiver).getUTCDay() + 0 : Primitives.lazyAsJsDate(receiver).getDay() + 0;
+ let weekday = dart.as(dart.dload(receiver, 'isUtc'), core.bool) ? Primitives.lazyAsJsDate(receiver).getUTCDay() + 0 : Primitives.lazyAsJsDate(receiver).getDay() + 0;
return (dart.notNull(weekday) + 6) % 7 + 1;
}
static valueFromDateString(str) {

Powered by Google App Engine
This is Rietveld 408576698