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

Unified 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 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 37366a073f5d73e824a872c08d625c0a543c39cb..5f563a6433e5f4e6b4e9b5baf2da13b98d301f6f 100644
--- a/lib/runtime/dart/_js_helper.js
+++ b/lib/runtime/dart/_js_helper.js
@@ -123,7 +123,7 @@ var _isolate_helper = dart.lazyImport(_isolate_helper);
forEach(f) {
dart.as(f, dart.functionType(dart.void, [K, V]));
let keys = this[_keys];
- for (let i = 0; i['<'](dart.dload(keys, 'length')); i = dart.notNull(i) + 1) {
+ for (let i = 0; dart.notNull(i) < dart.notNull(dart.as(dart.dload(keys, 'length'), core.num)); i = dart.notNull(i) + 1) {
let key = dart.dindex(keys, i);
f(dart.as(key, K), dart.as(this[_fetch](key), V));
}
@@ -432,7 +432,7 @@ var _isolate_helper = dart.lazyImport(_isolate_helper);
let context = window;
let fun = function() {
};
- for (let i = 0; i['<'](dart.dload(tags, 'length')); i = dart.notNull(i) + 1) {
+ for (let i = 0; dart.notNull(i) < dart.notNull(dart.as(dart.dload(tags, 'length'), core.num)); i = dart.notNull(i) + 1) {
let tag = dart.dindex(tags, i);
let proto = dart.dcall(exports.prototypeForTagFunction, tag);
if (proto != null) {
@@ -445,7 +445,7 @@ var _isolate_helper = dart.lazyImport(_isolate_helper);
}
}
}
- for (let i = 0; i['<'](dart.dload(tags, 'length')); i = dart.notNull(i) + 1) {
+ for (let i = 0; dart.notNull(i) < dart.notNull(dart.as(dart.dload(tags, 'length'), core.num)); i = dart.notNull(i) + 1) {
let tag = tags[i];
if (/^[A-Za-z_]/.test(tag)) {
let interceptorClass = propertyGet(map, tag);
@@ -1318,7 +1318,7 @@ var _isolate_helper = dart.lazyImport(_isolate_helper);
if (hasNoField(s, `${_foreign_helper.JS_FUNCTION_TYPE_TAG()}`))
return false;
if (hasField(s, `${_foreign_helper.JS_FUNCTION_TYPE_VOID_RETURN_TAG()}`)) {
- if (dart.dsend(hasNoField(t, `${_foreign_helper.JS_FUNCTION_TYPE_VOID_RETURN_TAG()}`), '&&', hasField(t, `${_foreign_helper.JS_FUNCTION_TYPE_RETURN_TYPE_TAG()}`))) {
+ 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()}`)) {
@@ -2010,8 +2010,8 @@ var _isolate_helper = dart.lazyImport(_isolate_helper);
if (dart.dsend(i, '<=', 65535)) {
a[core.$add](dart.as(i, core.int));
} else if (dart.dsend(i, '<=', 1114111)) {
- a[core.$add]((55296)['+'](dart.dsend(dart.dsend(dart.dsend(i, '-', 65536), '>>', 10), '&', 1023)));
- a[core.$add]((56320)['+'](dart.dsend(i, '&', 1023)));
+ 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 {
throw new core.ArgumentError(i);
}
@@ -2030,14 +2030,14 @@ var _isolate_helper = dart.lazyImport(_isolate_helper);
return Primitives._fromCharCodeApply(dart.as(charCodes, core.List$(core.int)));
}
static stringFromCharCode(charCode) {
- if ((0)['<='](charCode)) {
+ if (0 <= dart.notNull(dart.as(charCode, core.num))) {
if (dart.dsend(charCode, '<=', 65535)) {
return String.fromCharCode(charCode);
}
if (dart.dsend(charCode, '<=', 1114111)) {
let bits = dart.dsend(charCode, '-', 65536);
- let low = (56320)['|'](dart.dsend(bits, '&', 1023));
- let high = (55296)['|'](dart.dsend(bits, '>>', 10));
+ let low = (56320)['|'](dart.as(dart.dsend(bits, '&', 1023), core.int));
+ let high = (55296)['|'](dart.as(dart.dsend(bits, '>>', 10), core.int));
return String.fromCharCode(high, low);
}
}
@@ -2082,10 +2082,10 @@ var _isolate_helper = dart.lazyImport(_isolate_helper);
} else {
value = new Date(years, jsMonth, day, hours, minutes, seconds, milliseconds).valueOf();
}
- if (dart.dsend(dart.dload(value, 'isNaN'), '||', dart.dsend(value, '<', -dart.notNull(MAX_MILLISECONDS_SINCE_EPOCH)))['||'](dart.dsend(value, '>', MAX_MILLISECONDS_SINCE_EPOCH))) {
+ if (dart.notNull(dart.as(dart.dload(value, 'isNaN'), core.bool)) || dart.notNull(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))) {
return null;
}
- if (dart.dsend(dart.dsend(years, '<=', 0), '||', dart.dsend(years, '<', 100)))
+ if (dart.notNull(dart.as(dart.dsend(years, '<=', 0), core.bool)) || dart.notNull(dart.as(dart.dsend(years, '<', 100), core.bool)))
return Primitives.patchUpY2K(value, years, isUtc);
return value;
}
@@ -3642,7 +3642,7 @@ var _isolate_helper = dart.lazyImport(_isolate_helper);
static listToRti(list) {
list = list;
let result = [];
- for (let i = 0; i['<'](dart.dload(list, 'length')); i = dart.notNull(i) + 1) {
+ for (let i = 0; dart.notNull(i) < dart.notNull(dart.as(dart.dload(list, 'length'), core.num)); i = dart.notNull(i) + 1) {
result.push(dart.dsend(dart.dindex(list, i), 'toRti'));
}
return result;
@@ -3721,7 +3721,7 @@ var _isolate_helper = dart.lazyImport(_isolate_helper);
dart.fn(buildNamedFunctionType, RuntimeFunctionType, [dart.dynamic, dart.dynamic, dart.dynamic]);
function buildInterfaceType(rti, typeArguments) {
let name = dart.as(rti.name, core.String);
- if ((typeArguments == null)['||'](dart.dload(typeArguments, 'isEmpty'))) {
+ if (dart.notNull(typeArguments == null) || dart.notNull(dart.as(dart.dload(typeArguments, 'isEmpty'), core.bool))) {
return new RuntimeTypePlain(name);
}
return new RuntimeTypeGeneric(name, dart.as(typeArguments, core.List$(RuntimeType)), null);

Powered by Google App Engine
This is Rietveld 408576698