Index: test/codegen/expect/_interceptors/_interceptors.js |
diff --git a/test/codegen/expect/_interceptors/_interceptors.js b/test/codegen/expect/_interceptors/_interceptors.js |
index c586e1f3b1282a9690febcc785fa10eba36bc036..3f32e631a5e7a3cf6ec2514b20ecedc6295e0a8e 100644 |
--- a/test/codegen/expect/_interceptors/_interceptors.js |
+++ b/test/codegen/expect/_interceptors/_interceptors.js |
@@ -17,11 +17,11 @@ var _interceptors; |
} |
// Function getInterceptor: (dynamic) → dynamic |
function getInterceptor(object) { |
- return _foreign_helper.JS('', 'void 0'); |
+ return void 0; |
} |
// Function getDispatchProperty: (dynamic) → dynamic |
function getDispatchProperty(object) { |
- return _foreign_helper.JS('', '#[#]', object, _foreign_helper.JS_EMBEDDED_GLOBAL('String', dart.as(_js_embedded_names.DISPATCH_PROPERTY_NAME, core.String))); |
+ return object[_foreign_helper.JS_EMBEDDED_GLOBAL('String', dart.as(_js_embedded_names.DISPATCH_PROPERTY_NAME, core.String))]; |
} |
// Function setDispatchProperty: (dynamic, dynamic) → dynamic |
function setDispatchProperty(object, value) { |
@@ -29,23 +29,23 @@ var _interceptors; |
} |
// Function makeDispatchRecord: (dynamic, dynamic, dynamic, dynamic) → dynamic |
function makeDispatchRecord(interceptor, proto, extension, indexability) { |
- return _foreign_helper.JS('', '{i: #, p: #, e: #, x: #}', interceptor, proto, extension, indexability); |
+ return {i: interceptor, p: proto, e: extension, x: indexability}; |
} |
// Function dispatchRecordInterceptor: (dynamic) → dynamic |
function dispatchRecordInterceptor(record) { |
- return _foreign_helper.JS('', '#.i', record); |
+ return record.i; |
} |
// Function dispatchRecordProto: (dynamic) → dynamic |
function dispatchRecordProto(record) { |
- return _foreign_helper.JS('', '#.p', record); |
+ return record.p; |
} |
// Function dispatchRecordExtension: (dynamic) → dynamic |
function dispatchRecordExtension(record) { |
- return _foreign_helper.JS('', '#.e', record); |
+ return record.e; |
} |
// Function dispatchRecordIndexability: (dynamic) → dynamic |
function dispatchRecordIndexability(record) { |
- return _foreign_helper.JS('bool|Null', '#.x', record); |
+ return record.x; |
} |
// Function getNativeInterceptor: (dynamic) → dynamic |
function getNativeInterceptor(object) { |
@@ -62,20 +62,20 @@ var _interceptors; |
return dispatchRecordInterceptor(record); |
if (true === proto) |
return object; |
- let objectProto = _foreign_helper.JS('', 'Object.getPrototypeOf(#)', object); |
- if (_foreign_helper.JS('bool', '# === #', proto, objectProto)) { |
+ let objectProto = Object.getPrototypeOf(object); |
+ if (proto === objectProto) { |
return dispatchRecordInterceptor(record); |
} |
let extension = dispatchRecordExtension(record); |
- if (_foreign_helper.JS('bool', '# === #', extension, objectProto)) { |
- let discriminatedTag = _foreign_helper.JS('', '(#)(#, #)', proto, object, record); |
+ if (extension === objectProto) { |
+ let discriminatedTag = proto(object, record); |
throw new core.UnimplementedError(`Return interceptor for ${discriminatedTag}`); |
} |
} |
let interceptor = _js_helper.lookupAndCacheInterceptor(object); |
if (interceptor === null) { |
- let proto = _foreign_helper.JS('', 'Object.getPrototypeOf(#)', object); |
- if (_foreign_helper.JS('bool', '# == null || # === Object.prototype', proto, proto)) { |
+ let proto = Object.getPrototypeOf(object); |
+ if (proto == null || proto === Object.prototype) { |
return _foreign_helper.JS_INTERCEPTOR_CONSTANT(PlainJavaScriptObject); |
} else { |
return _foreign_helper.JS_INTERCEPTOR_CONSTANT(UnknownJavaScriptObject); |
@@ -90,9 +90,9 @@ var _interceptors; |
}); |
// Function findIndexForNativeSubclassType: (Type) → int |
function findIndexForNativeSubclassType(type) { |
- if (_foreign_helper.JS('bool', '# == null', _interceptors.mapTypeToInterceptor)) |
+ if (_interceptors.mapTypeToInterceptor == null) |
return dart.as(null, core.int); |
- let map = dart.as(_foreign_helper.JS('JSFixedArray', '#', _interceptors.mapTypeToInterceptor), core.List); |
+ let map = dart.as(_interceptors.mapTypeToInterceptor, core.List); |
for (let i = 0; i + 1 < map.length; i = 3) { |
if (dart.equals(type, map.get(i))) { |
return i; |
@@ -105,7 +105,7 @@ var _interceptors; |
let index = findIndexForNativeSubclassType(type); |
if (index === null) |
return null; |
- let map = dart.as(_foreign_helper.JS('JSFixedArray', '#', _interceptors.mapTypeToInterceptor), core.List); |
+ let map = dart.as(_interceptors.mapTypeToInterceptor, core.List); |
return map.get(index + 1); |
} |
// Function findConstructorForNativeSubclassType: (Type, String) → dynamic |
@@ -113,9 +113,9 @@ var _interceptors; |
let index = findIndexForNativeSubclassType(type); |
if (index === null) |
return null; |
- let map = dart.as(_foreign_helper.JS('JSFixedArray', '#', _interceptors.mapTypeToInterceptor), core.List); |
+ let map = dart.as(_interceptors.mapTypeToInterceptor, core.List); |
let constructorMap = map.get(index + 2); |
- let constructorFn = _foreign_helper.JS('', '#[#]', constructorMap, name); |
+ let constructorFn = constructorMap[name]; |
return constructorFn; |
} |
// Function findInterceptorForType: (Type) → dynamic |
@@ -123,7 +123,7 @@ var _interceptors; |
let constructor = findInterceptorConstructorForType(type); |
if (constructor === null) |
return null; |
- return _foreign_helper.JS('', '#.prototype', constructor); |
+ return constructor.prototype; |
} |
class Interceptor extends dart.Object { |
Interceptor() { |
@@ -149,7 +149,7 @@ var _interceptors; |
super.Interceptor(); |
} |
toString() { |
- return dart.as(_foreign_helper.JS('String', 'String(#)', this), core.String); |
+ return String(this); |
} |
get hashCode() { |
return this ? 2 * 3 * 23 * 3761 : 269 * 811; |
@@ -205,7 +205,7 @@ var _interceptors; |
super.JavaScriptObject(); |
} |
toString() { |
- return dart.as(_foreign_helper.JS('String', 'String(#)', this), core.String); |
+ return String(this); |
} |
} |
let JSArray$ = dart.generic(function(E) { |
@@ -217,29 +217,29 @@ var _interceptors; |
if (dart.notNull(!(typeof length == number)) || dart.notNull(length < 0)) { |
throw new core.ArgumentError(`Length must be a non-negative integer: ${length}`); |
} |
- return new JSArray.markFixed(_foreign_helper.JS('', 'new Array(#)', length)); |
+ return new JSArray.markFixed(new Array(length)); |
} |
JSArray$emptyGrowable() { |
- return new JSArray.markGrowable(_foreign_helper.JS('', '[]')); |
+ return new JSArray.markGrowable([]); |
} |
JSArray$growable(length) { |
if (dart.notNull(!(typeof length == number)) || dart.notNull(length < 0)) { |
throw new core.ArgumentError(`Length must be a non-negative integer: ${length}`); |
} |
- return new JSArray.markGrowable(_foreign_helper.JS('', 'new Array(#)', length)); |
+ return new JSArray.markGrowable(new Array(length)); |
} |
JSArray$typed(allocation) { |
- return dart.as(_foreign_helper.JS('JSArray', '#', allocation), JSArray$(E)); |
+ return dart.as(allocation, JSArray$(E)); |
} |
JSArray$markFixed(allocation) { |
- return dart.as(_foreign_helper.JS('JSFixedArray', '#', markFixedList(new JSArray.typed(allocation))), JSArray$(E)); |
+ return dart.as(markFixedList(new JSArray.typed(allocation)), JSArray$(E)); |
} |
JSArray$markGrowable(allocation) { |
- return dart.as(_foreign_helper.JS('JSExtendableArray', '#', new JSArray.typed(allocation)), JSArray$(E)); |
+ return dart.as(new JSArray.typed(allocation), JSArray$(E)); |
} |
static markFixedList(list) { |
- _foreign_helper.JS('void', '#.fixed$length = Array', list); |
- return dart.as(_foreign_helper.JS('JSFixedArray', '#', list), core.List); |
+ list.fixed$length = Array; |
+ return dart.as(list, core.List); |
} |
checkMutable(reason) { |
if (!dart.is(this, JSMutableArray)) { |
@@ -253,7 +253,7 @@ var _interceptors; |
} |
add(value) { |
this.checkGrowable('add'); |
- _foreign_helper.JS('void', '#.push(#)', this, value); |
+ this.push(value); |
} |
removeAt(index) { |
if (!(typeof index == number)) |
@@ -262,7 +262,7 @@ var _interceptors; |
throw new core.RangeError.value(index); |
} |
this.checkGrowable('removeAt'); |
- return dart.as(_foreign_helper.JS('var', '#.splice(#, 1)[0]', this, index), E); |
+ return dart.as(this.splice(index, 1)[0], E); |
} |
insert(index, value) { |
if (!(typeof index == number)) |
@@ -271,7 +271,7 @@ var _interceptors; |
throw new core.RangeError.value(index); |
} |
this.checkGrowable('insert'); |
- _foreign_helper.JS('void', '#.splice(#, 0, #)', this, index, value); |
+ this.splice(index, 0, value); |
} |
insertAll(index, iterable) { |
this.checkGrowable('insertAll'); |
@@ -285,13 +285,13 @@ var _interceptors; |
this.checkGrowable('removeLast'); |
if (this.length === 0) |
throw new core.RangeError.value(-1); |
- return dart.as(_foreign_helper.JS('var', '#.pop()', this), E); |
+ return dart.as(this.pop(), E); |
} |
remove(element) { |
this.checkGrowable('remove'); |
for (let i = 0; i < this.length; i++) { |
if (dart.equals(this.get(i), element)) { |
- _foreign_helper.JS('var', '#.splice(#, 1)', this, i); |
+ this.splice(i, 1); |
return true; |
} |
} |
@@ -320,7 +320,7 @@ var _interceptors; |
forEach(f) { |
let length = this.length; |
for (let i = 0; i < length; i++) { |
- f(dart.as(_foreign_helper.JS('', '#[#]', this, i), E)); |
+ f(dart.as(this[i], E)); |
if (length !== this.length) { |
throw new core.ConcurrentModificationError(this); |
} |
@@ -336,7 +336,7 @@ var _interceptors; |
for (let i = 0; i < this.length; i++) { |
list.set(i, `${this.get(i)}`); |
} |
- return dart.as(_foreign_helper.JS('String', "#.join(#)", list, separator), core.String); |
+ return list.join(separator); |
} |
take(n) { |
return new _internal.IterableMixinWorkaround().takeList(this, n); |
@@ -390,7 +390,7 @@ var _interceptors; |
} |
if (start === end) |
return new List.from([]); |
- return new JSArray.markGrowable(_foreign_helper.JS('', '#.slice(#, #)', this, start, end)); |
+ return new JSArray.markGrowable(this.slice(start, end)); |
} |
getRange(start, end) { |
return new _internal.IterableMixinWorkaround().getRangeList(this, start, end); |
@@ -489,9 +489,9 @@ var _interceptors; |
toList(opt$) { |
let growable = opt$.growable === void 0 ? true : opt$.growable; |
if (growable) { |
- return new JSArray.markGrowable(_foreign_helper.JS('', '#.slice()', this)); |
+ return new JSArray.markGrowable(this.slice()); |
} else { |
- return new JSArray.markFixed(_foreign_helper.JS('', '#.slice()', this)); |
+ return new JSArray.markFixed(this.slice()); |
} |
} |
toSet() { |
@@ -504,7 +504,7 @@ var _interceptors; |
return _js_helper.Primitives.objectHashCode(this); |
} |
get length() { |
- return dart.as(_foreign_helper.JS('JSUInt32', '#.length', this), core.int); |
+ return dart.as(this.length, core.int); |
} |
set length(newLength) { |
if (!(typeof newLength == number)) |
@@ -512,14 +512,14 @@ var _interceptors; |
if (newLength < 0) |
throw new core.RangeError.value(newLength); |
this.checkGrowable('set length'); |
- _foreign_helper.JS('void', '#.length = #', this, newLength); |
+ this.length = newLength; |
} |
get(index) { |
if (!(typeof index == number)) |
throw new core.ArgumentError(index); |
if (dart.notNull(index >= this.length) || dart.notNull(index < 0)) |
throw new core.RangeError.value(index); |
- return dart.as(_foreign_helper.JS('var', '#[#]', this, index), E); |
+ return dart.as(this[index], E); |
} |
set(index, value) { |
this.checkMutable('indexed set'); |
@@ -527,7 +527,7 @@ var _interceptors; |
throw new core.ArgumentError(index); |
if (dart.notNull(index >= this.length) || dart.notNull(index < 0)) |
throw new core.RangeError.value(index); |
- _foreign_helper.JS('void', '#[#] = #', this, index, value); |
+ this[index] = value; |
} |
asMap() { |
return new _internal.IterableMixinWorkaround().asMapList(this); |
@@ -594,34 +594,34 @@ var _interceptors; |
return dart.equals(this, 0) ? 1['/'](this) < 0 : this['<'](0); |
} |
get isNaN() { |
- return dart.as(_foreign_helper.JS('bool', 'isNaN(#)', this), core.bool); |
+ return isNaN(this); |
} |
get isInfinite() { |
- return dart.dbinary(_foreign_helper.JS('bool', '# == Infinity', this), '||', _foreign_helper.JS('bool', '# == -Infinity', this)); |
+ return dart.notNull(this == Infinity) || dart.notNull(this == -Infinity); |
} |
get isFinite() { |
- return dart.as(_foreign_helper.JS('bool', 'isFinite(#)', this), core.bool); |
+ return isFinite(this); |
} |
remainder(b) { |
_js_helper.checkNull(b); |
if (!dart.is(b, core.num)) |
throw new core.ArgumentError(b); |
- return dart.as(_foreign_helper.JS('num', '# % #', this, b), core.num); |
+ return this % b; |
} |
abs() { |
- return dart.as(_foreign_helper.JS('num', 'Math.abs(#)', this), core.num); |
+ return Math.abs(this); |
} |
get sign() { |
return this['>'](0) ? 1 : this['<'](0) ? -1 : this; |
} |
toInt() { |
if (dart.notNull(this['>='](_MIN_INT32)) && dart.notNull(this['<='](_MAX_INT32))) { |
- return dart.as(_foreign_helper.JS('int', '# | 0', this), core.int); |
+ return this | 0; |
} |
- if (_foreign_helper.JS('bool', 'isFinite(#)', this)) { |
- return dart.as(_foreign_helper.JS('int', '# + 0', this.truncateToDouble()), core.int); |
+ if (isFinite(this)) { |
+ return this.truncateToDouble() + 0; |
} |
- throw new core.UnsupportedError(dart.as(_foreign_helper.JS("String", "''+#", this), core.String)); |
+ throw new core.UnsupportedError('' + this); |
} |
truncate() { |
return this.toInt(); |
@@ -636,16 +636,16 @@ var _interceptors; |
return this.roundToDouble().toInt(); |
} |
ceilToDouble() { |
- return dart.as(_foreign_helper.JS('num', 'Math.ceil(#)', this), core.double); |
+ return dart.notNull(Math.ceil(this)); |
} |
floorToDouble() { |
- return dart.as(_foreign_helper.JS('num', 'Math.floor(#)', this), core.double); |
+ return dart.notNull(Math.floor(this)); |
} |
roundToDouble() { |
if (this['<'](0)) { |
- return dart.as(_foreign_helper.JS('num', '-Math.round(-#)', this), core.double); |
+ return dart.notNull(-Math.round(-this)); |
} else { |
- return dart.as(_foreign_helper.JS('num', 'Math.round(#)', this), core.double); |
+ return dart.notNull(Math.round(this)); |
} |
} |
truncateToDouble() { |
@@ -673,7 +673,7 @@ var _interceptors; |
if (dart.notNull(fractionDigits < 0) || dart.notNull(fractionDigits > 20)) { |
throw new core.RangeError(fractionDigits); |
} |
- let result = dart.as(_foreign_helper.JS('String', '#.toFixed(#)', this, fractionDigits), core.String); |
+ let result = this.toFixed(fractionDigits); |
if (dart.notNull(dart.equals(this, 0)) && dart.notNull(this.isNegative)) |
return `-${result}`; |
return result; |
@@ -687,9 +687,9 @@ var _interceptors; |
if (dart.notNull(fractionDigits < 0) || dart.notNull(fractionDigits > 20)) { |
throw new core.RangeError(fractionDigits); |
} |
- result = dart.as(_foreign_helper.JS('String', '#.toExponential(#)', this, fractionDigits), core.String); |
+ result = this.toExponential(fractionDigits); |
} else { |
- result = dart.as(_foreign_helper.JS('String', '#.toExponential()', this), core.String); |
+ result = this.toExponential(); |
} |
if (dart.notNull(dart.equals(this, 0)) && dart.notNull(this.isNegative)) |
return `-${result}`; |
@@ -700,7 +700,7 @@ var _interceptors; |
if (dart.notNull(precision < 1) || dart.notNull(precision > 21)) { |
throw new core.RangeError(precision); |
} |
- let result = dart.as(_foreign_helper.JS('String', '#.toPrecision(#)', this, precision), core.String); |
+ let result = this.toPrecision(precision); |
if (dart.notNull(dart.equals(this, 0)) && dart.notNull(this.isNegative)) |
return `-${result}`; |
return result; |
@@ -709,7 +709,7 @@ var _interceptors; |
_js_helper.checkInt(radix); |
if (dart.notNull(radix < 2) || dart.notNull(radix > 36)) |
throw new core.RangeError(radix); |
- let result = dart.as(_foreign_helper.JS('String', '#.toString(#)', this, radix), core.String); |
+ let result = this.toString(radix); |
let rightParenCode = 41; |
if (result.codeUnitAt(result.length - 1) !== rightParenCode) { |
return result; |
@@ -717,149 +717,149 @@ var _interceptors; |
return _handleIEtoString(result); |
} |
static _handleIEtoString(result) { |
- let match = _foreign_helper.JS('List|Null', '/^([\\da-z]+)(?:\\.([\\da-z]+))?\\(e\\+(\\d+)\\)$/.exec(#)', result); |
+ let match = /^([\da-z]+)(?:\.([\da-z]+))?\(e\+(\d+)\)$/.exec(result); |
if (match === null) { |
throw new core.UnsupportedError(`Unexpected toString result: ${result}`); |
} |
- let result = dart.as(_foreign_helper.JS('String', '#', dart.dindex(match, 1)), core.String); |
- let exponent = dart.as(_foreign_helper.JS("int", "+#", dart.dindex(match, 3)), core.int); |
+ let result = dart.dindex(match, 1); |
+ let exponent = +dart.dindex(match, 3); |
if (dart.dindex(match, 2) !== null) { |
- result = dart.as(_foreign_helper.JS('String', '# + #', result, dart.dindex(match, 2)), core.String); |
- exponent = dart.as(_foreign_helper.JS('int', '#.length', dart.dindex(match, 2)), core.int); |
+ result = result + dart.dindex(match, 2); |
+ exponent = dart.dindex(match, 2).length; |
} |
return core.String['+'](result, core.String['*']("0", exponent)); |
} |
toString() { |
- if (core.bool['&&'](dart.equals(this, 0), _foreign_helper.JS('bool', '(1 / #) < 0', this))) { |
+ if (dart.notNull(dart.equals(this, 0)) && dart.notNull(1 / this < 0)) { |
return '-0.0'; |
} else { |
- return dart.as(_foreign_helper.JS('String', '"" + (#)', this), core.String); |
+ return "" + this; |
} |
} |
get hashCode() { |
- return dart.as(_foreign_helper.JS('int', '# & 0x1FFFFFFF', this), core.int); |
+ return this & 0x1FFFFFFF; |
} |
['-']() { |
- return dart.as(_foreign_helper.JS('num', '-#', this), core.num); |
+ return -this; |
} |
['+'](other) { |
if (!dart.is(other, core.num)) |
throw new core.ArgumentError(other); |
- return dart.as(_foreign_helper.JS('num', '# + #', this, other), core.num); |
+ return this + other; |
} |
['-'](other) { |
if (!dart.is(other, core.num)) |
throw new core.ArgumentError(other); |
- return dart.as(_foreign_helper.JS('num', '# - #', this, other), core.num); |
+ return this - other; |
} |
['/'](other) { |
if (!dart.is(other, core.num)) |
throw new core.ArgumentError(other); |
- return dart.as(_foreign_helper.JS('num', '# / #', this, other), core.num); |
+ return this / other; |
} |
['*'](other) { |
if (!dart.is(other, core.num)) |
throw new core.ArgumentError(other); |
- return dart.as(_foreign_helper.JS('num', '# * #', this, other), core.num); |
+ return this * other; |
} |
['%'](other) { |
if (!dart.is(other, core.num)) |
throw new core.ArgumentError(other); |
- let result = dart.as(_foreign_helper.JS('num', '# % #', this, other), core.num); |
+ let result = this % other; |
if (result === 0) |
return 0; |
if (dart.notNull(result) > 0) |
return result; |
- if (dart.dbinary(_foreign_helper.JS('num', '#', other), '<', 0)) { |
- return core.num['-'](result, _foreign_helper.JS('num', '#', other)); |
+ if (dart.notNull(other) < 0) { |
+ return dart.notNull(result) - dart.notNull(other); |
} else { |
- return core.num['+'](result, _foreign_helper.JS('num', '#', other)); |
+ return dart.notNull(result) + dart.notNull(other); |
} |
} |
_isInt32(value) { |
- return dart.as(_foreign_helper.JS('bool', '(# | 0) === #', value, value), core.bool); |
+ return (value | 0) === value; |
} |
['~/'](other) { |
if (false) |
this._tdivFast(other); |
if (dart.notNull(dart.notNull(dart.notNull(this._isInt32(this)) && dart.notNull(this._isInt32(other))) && dart.notNull(0 !== other)) && dart.notNull(-1 !== other)) { |
- return dart.as(_foreign_helper.JS('int', '(# / #) | 0', this, other), core.int); |
+ return this / other | 0; |
} else { |
return this._tdivSlow(other); |
} |
} |
_tdivFast(other) { |
- return dart.as(this._isInt32(this) ? _foreign_helper.JS('int', '(# / #) | 0', this, other) : dart.dinvoke(_foreign_helper.JS('num', '# / #', this, other), 'toInt'), core.int); |
+ return this._isInt32(this) ? this / other | 0 : (this / other).toInt(); |
} |
_tdivSlow(other) { |
if (!dart.is(other, core.num)) |
throw new core.ArgumentError(other); |
- return dart.as(dart.dinvoke(_foreign_helper.JS('num', '# / #', this, other), 'toInt'), core.int); |
+ return (this / other).toInt(); |
} |
['<<'](other) { |
if (!dart.is(other, core.num)) |
throw new core.ArgumentError(other); |
- if (dart.dbinary(_foreign_helper.JS('num', '#', other), '<', 0)) |
+ if (dart.notNull(other) < 0) |
throw new core.ArgumentError(other); |
return this._shlPositive(other); |
} |
_shlPositive(other) { |
- return dart.as(_foreign_helper.JS('bool', '# > 31', other) ? 0 : _foreign_helper.JS('JSUInt32', '(# << #) >>> 0', this, other), core.num); |
+ return dart.as(other > 31 ? 0 : this << other >>> 0, core.num); |
} |
['>>'](other) { |
if (false) |
this._shrReceiverPositive(other); |
if (!dart.is(other, core.num)) |
throw new core.ArgumentError(other); |
- if (dart.dbinary(_foreign_helper.JS('num', '#', other), '<', 0)) |
+ if (dart.notNull(other) < 0) |
throw new core.ArgumentError(other); |
return this._shrOtherPositive(other); |
} |
_shrOtherPositive(other) { |
- return dart.as(dart.dbinary(_foreign_helper.JS('num', '#', this), '>', 0) ? this._shrBothPositive(other) : _foreign_helper.JS('JSUInt32', '(# >> #) >>> 0', this, dart.notNull(other) > 31 ? 31 : other), core.num); |
+ return dart.as(dart.notNull(this) > 0 ? this._shrBothPositive(other) : this >> (dart.notNull(other) > 31 ? 31 : other) >>> 0, core.num); |
} |
_shrReceiverPositive(other) { |
- if (dart.dbinary(_foreign_helper.JS('num', '#', other), '<', 0)) |
+ if (dart.notNull(other) < 0) |
throw new core.ArgumentError(other); |
return this._shrBothPositive(other); |
} |
_shrBothPositive(other) { |
- return dart.as(_foreign_helper.JS('bool', '# > 31', other) ? 0 : _foreign_helper.JS('JSUInt32', '# >>> #', this, other), core.num); |
+ return dart.as(other > 31 ? 0 : this >>> other, core.num); |
} |
['&'](other) { |
if (!dart.is(other, core.num)) |
throw new core.ArgumentError(other); |
- return dart.as(_foreign_helper.JS('JSUInt32', '(# & #) >>> 0', this, other), core.num); |
+ return dart.as((this & other) >>> 0, core.num); |
} |
['|'](other) { |
if (!dart.is(other, core.num)) |
throw new core.ArgumentError(other); |
- return dart.as(_foreign_helper.JS('JSUInt32', '(# | #) >>> 0', this, other), core.num); |
+ return dart.as((this | other) >>> 0, core.num); |
} |
['^'](other) { |
if (!dart.is(other, core.num)) |
throw new core.ArgumentError(other); |
- return dart.as(_foreign_helper.JS('JSUInt32', '(# ^ #) >>> 0', this, other), core.num); |
+ return dart.as((this ^ other) >>> 0, core.num); |
} |
['<'](other) { |
if (!dart.is(other, core.num)) |
throw new core.ArgumentError(other); |
- return dart.as(_foreign_helper.JS('bool', '# < #', this, other), core.bool); |
+ return this < other; |
} |
['>'](other) { |
if (!dart.is(other, core.num)) |
throw new core.ArgumentError(other); |
- return dart.as(_foreign_helper.JS('bool', '# > #', this, other), core.bool); |
+ return this > other; |
} |
['<='](other) { |
if (!dart.is(other, core.num)) |
throw new core.ArgumentError(other); |
- return dart.as(_foreign_helper.JS('bool', '# <= #', this, other), core.bool); |
+ return this <= other; |
} |
['>='](other) { |
if (!dart.is(other, core.num)) |
throw new core.ArgumentError(other); |
- return dart.as(_foreign_helper.JS('bool', '# >= #', this, other), core.bool); |
+ return this >= other; |
} |
get runtimeType() { |
return core.num; |
@@ -901,13 +901,13 @@ var _interceptors; |
return i & 63; |
} |
static _shru(value, shift) { |
- return _foreign_helper.JS('int', '# >>> #', value, shift); |
+ return value >>> shift; |
} |
static _shrs(value, shift) { |
- return _foreign_helper.JS('int', '# >> #', value, shift); |
+ return value >> shift; |
} |
static _ors(a, b) { |
- return _foreign_helper.JS('int', '# | #', a, b); |
+ return a | b; |
} |
static _spread(i) { |
i = dart.as(_ors(i, dart.as(_shrs(i, 1), core.int)), core.int); |
@@ -921,7 +921,7 @@ var _interceptors; |
return core.int; |
} |
['~']() { |
- return dart.as(_foreign_helper.JS('JSUInt32', '(~#) >>> 0', this), core.int); |
+ return dart.as(~this >>> 0, core.int); |
} |
} |
class JSDouble extends JSNumber { |
@@ -949,7 +949,7 @@ var _interceptors; |
throw new core.RangeError.value(index); |
if (index >= this.length) |
throw new core.RangeError.value(index); |
- return dart.as(_foreign_helper.JS('JSUInt31', '#.charCodeAt(#)', this, index), core.int); |
+ return dart.as(this.charCodeAt(index), core.int); |
} |
allMatches(string, start) { |
if (start === void 0) |
@@ -979,7 +979,7 @@ var _interceptors; |
['+'](other) { |
if (!(typeof other == string)) |
throw new core.ArgumentError(other); |
- return dart.as(_foreign_helper.JS('String', '# + #', this, other), core.String); |
+ return this + other; |
} |
endsWith(other) { |
_js_helper.checkString(other); |
@@ -1013,10 +1013,10 @@ var _interceptors; |
split(pattern) { |
_js_helper.checkNull(pattern); |
if (typeof pattern == string) { |
- return dart.as(_foreign_helper.JS('JSExtendableArray', '#.split(#)', this, pattern), core.List$(core.String)); |
+ return dart.as(this.split(pattern), core.List$(core.String)); |
} else if (dart.notNull(dart.is(pattern, _js_helper.JSSyntaxRegExp)) && dart.notNull(_js_helper.regExpCaptureCount(pattern) === 0)) { |
let re = _js_helper.regExpGetNative(pattern); |
- return dart.as(_foreign_helper.JS('JSExtendableArray', '#.split(#)', this, re), core.List$(core.String)); |
+ return dart.as(this.split(re), core.List$(core.String)); |
} else { |
return this._defaultSplit(pattern); |
} |
@@ -1054,7 +1054,7 @@ var _interceptors; |
let endIndex = index + otherLength; |
if (endIndex > this.length) |
return false; |
- return dart.equals(other, _foreign_helper.JS('String', '#.substring(#, #)', this, index, endIndex)); |
+ return dart.equals(other, this.substring(index, endIndex)); |
} |
return pattern.matchAsPrefix(this, index) !== null; |
} |
@@ -1071,13 +1071,13 @@ var _interceptors; |
throw new core.RangeError.value(startIndex); |
if (endIndex > this.length) |
throw new core.RangeError.value(endIndex); |
- return dart.as(_foreign_helper.JS('String', '#.substring(#, #)', this, startIndex, endIndex), core.String); |
+ return this.substring(startIndex, endIndex); |
} |
toLowerCase() { |
- return dart.as(_foreign_helper.JS('String', '#.toLowerCase()', this), core.String); |
+ return this.toLowerCase(); |
} |
toUpperCase() { |
- return dart.as(_foreign_helper.JS('String', '#.toUpperCase()', this), core.String); |
+ return this.toUpperCase(); |
} |
static _isWhitespace(codeUnit) { |
if (codeUnit < 256) { |
@@ -1146,7 +1146,7 @@ var _interceptors; |
} |
trim() { |
let NEL = 133; |
- let result = dart.as(_foreign_helper.JS('String', '#.trim()', this), core.String); |
+ let result = this.trim(); |
if (result.length === 0) |
return result; |
let firstCode = result.codeUnitAt(0); |
@@ -1163,14 +1163,14 @@ var _interceptors; |
} |
if (dart.notNull(startIndex === 0) && dart.notNull(endIndex === result.length)) |
return result; |
- return dart.as(_foreign_helper.JS('String', '#.substring(#, #)', result, startIndex, endIndex), core.String); |
+ return result.substring(startIndex, endIndex); |
} |
trimLeft() { |
let NEL = 133; |
let result = null; |
let startIndex = 0; |
- if (_foreign_helper.JS('bool', 'typeof #.trimLeft != "undefined"', this)) { |
- result = dart.as(_foreign_helper.JS('String', '#.trimLeft()', this), core.String); |
+ if (typeof this.trimLeft != "undefined") { |
+ result = this.trimLeft(); |
if (result.length === 0) |
return result; |
let firstCode = result.codeUnitAt(0); |
@@ -1185,14 +1185,14 @@ var _interceptors; |
return result; |
if (startIndex === result.length) |
return ""; |
- return dart.as(_foreign_helper.JS('String', '#.substring(#)', result, startIndex), core.String); |
+ return result.substring(startIndex); |
} |
trimRight() { |
let NEL = 133; |
let result = null; |
let endIndex = null; |
- if (_foreign_helper.JS('bool', 'typeof #.trimRight != "undefined"', this)) { |
- result = dart.as(_foreign_helper.JS('String', '#.trimRight()', this), core.String); |
+ if (typeof this.trimRight != "undefined") { |
+ result = this.trimRight(); |
endIndex = result.length; |
if (endIndex === 0) |
return result; |
@@ -1208,14 +1208,14 @@ var _interceptors; |
return result; |
if (endIndex === 0) |
return ""; |
- return dart.as(_foreign_helper.JS('String', '#.substring(#, #)', result, 0, endIndex), core.String); |
+ return result.substring(0, endIndex); |
} |
['*'](times) { |
if (0 >= times) |
return ''; |
if (dart.notNull(times === 1) || dart.notNull(this.length === 0)) |
return this; |
- if (times !== _foreign_helper.JS('JSUInt32', '# >>> 0', times)) { |
+ if (times !== times >>> 0) { |
throw new core.OutOfMemoryError(); |
} |
let result = ''; |
@@ -1223,7 +1223,7 @@ var _interceptors; |
while (true) { |
if ((times & 1) === 1) |
result = s['+'](result); |
- times = dart.as(_foreign_helper.JS('JSUInt31', '# >>> 1', times), core.int); |
+ times = dart.as(times >>> 1, core.int); |
if (times === 0) |
break; |
s = s; |
@@ -1262,7 +1262,7 @@ var _interceptors; |
throw new core.RangeError.range(start, 0, this.length); |
} |
if (typeof pattern == string) { |
- return dart.as(_foreign_helper.JS('int', '#.indexOf(#, #)', this, pattern, start), core.int); |
+ return this.indexOf(pattern, start); |
} |
if (dart.is(pattern, _js_helper.JSSyntaxRegExp)) { |
let re = pattern; |
@@ -1317,7 +1317,7 @@ var _interceptors; |
compareTo(other) { |
if (!(typeof other == string)) |
throw new core.ArgumentError(other); |
- return dart.equals(this, other) ? 0 : _foreign_helper.JS('bool', '# < #', this, other) ? -1 : 1; |
+ return dart.equals(this, other) ? 0 : this < other ? -1 : 1; |
} |
toString() { |
return this; |
@@ -1325,26 +1325,26 @@ var _interceptors; |
get hashCode() { |
let hash = 0; |
for (let i = 0; i < this.length; i++) { |
- hash = 536870911 & dart.notNull(hash['+'](_foreign_helper.JS('int', '#.charCodeAt(#)', this, i))); |
+ hash = 536870911 & hash + this.charCodeAt(i); |
hash = 536870911 & hash + ((524287 & hash) << 10); |
- hash = dart.as(_foreign_helper.JS('int', '# ^ (# >> 6)', hash, hash), core.int); |
+ hash = hash ^ hash >> 6; |
} |
hash = 536870911 & hash + ((67108863 & hash) << 3); |
- hash = dart.as(_foreign_helper.JS('int', '# ^ (# >> 11)', hash, hash), core.int); |
+ hash = hash ^ hash >> 11; |
return 536870911 & hash + ((16383 & hash) << 15); |
} |
get runtimeType() { |
return core.String; |
} |
get length() { |
- return dart.as(_foreign_helper.JS('int', '#.length', this), core.int); |
+ return this.length; |
} |
get(index) { |
if (!(typeof index == number)) |
throw new core.ArgumentError(index); |
if (dart.notNull(index >= this.length) || dart.notNull(index < 0)) |
throw new core.RangeError.value(index); |
- return dart.as(_foreign_helper.JS('String', '#[#]', this, index), core.String); |
+ return this[index]; |
} |
} |
class _CodeUnits extends _internal.UnmodifiableListBase$(core.int) { |