Index: test/codegen/expect/collection/collection.js |
diff --git a/test/codegen/expect/collection/collection.js b/test/codegen/expect/collection/collection.js |
index 81c2942e50e42482275460f5fc8e750361d2df6d..35efacabc103eb336ea26d4278a1925d1936014f 100644 |
--- a/test/codegen/expect/collection/collection.js |
+++ b/test/codegen/expect/collection/collection.js |
@@ -68,7 +68,7 @@ var collection; |
return dart.as(null, V); |
let bucket = this._getBucket(rest, key); |
let index = this._findBucketIndex(bucket, key); |
- return dart.as(index < 0 ? null : _foreign_helper.JS('var', '#[#]', bucket, index + 1), V); |
+ return dart.as(index < 0 ? null : bucket[index + 1], V); |
} |
set(key, value) { |
if (_isStringKey(key)) { |
@@ -90,17 +90,17 @@ var collection; |
if (rest === null) |
this._rest = rest = _newHashTable(); |
let hash = this._computeHashCode(key); |
- let bucket = _foreign_helper.JS('var', '#[#]', rest, hash); |
+ let bucket = rest[hash]; |
if (bucket === null) { |
- _setTableEntry(rest, hash, _foreign_helper.JS('var', '[#, #]', key, value)); |
+ _setTableEntry(rest, hash, [key, value]); |
this._length++; |
this._keys = null; |
} else { |
let index = this._findBucketIndex(bucket, key); |
if (index >= 0) { |
- _foreign_helper.JS('void', '#[#] = #', bucket, index + 1, value); |
+ bucket[index + 1] = value; |
} else { |
- _foreign_helper.JS('void', '#.push(#, #)', bucket, key, value); |
+ bucket.push(key, value); |
this._length++; |
this._keys = null; |
} |
@@ -132,7 +132,7 @@ var collection; |
return dart.as(null, V); |
this._length--; |
this._keys = null; |
- return dart.as(_foreign_helper.JS('var', '#.splice(#, 2)[1]', bucket, index), V); |
+ return dart.as(bucket.splice(index, 2)[1], V); |
} |
clear() { |
if (this._length > 0) { |
@@ -143,9 +143,9 @@ var collection; |
forEach(action) { |
let keys = this._computeKeys(); |
for (let i = 0, length = keys.length; i < length; i++) { |
- let key = _foreign_helper.JS('var', '#[#]', keys, i); |
+ let key = keys[i]; |
action(dart.as(key, K), this.get(key)); |
- if (_foreign_helper.JS('bool', '# !== #', keys, this._keys)) { |
+ if (keys !== this._keys) { |
throw new core.ConcurrentModificationError(this); |
} |
} |
@@ -157,35 +157,35 @@ var collection; |
let index = 0; |
let strings = this._strings; |
if (strings !== null) { |
- let names = _foreign_helper.JS('var', 'Object.getOwnPropertyNames(#)', strings); |
- let entries = dart.as(_foreign_helper.JS('int', '#.length', names), core.int); |
+ let names = Object.getOwnPropertyNames(strings); |
+ let entries = names.length; |
for (let i = 0; i < entries; i++) { |
- let key = dart.as(_foreign_helper.JS('String', '#[#]', names, i), core.String); |
- _foreign_helper.JS('void', '#[#] = #', result, index, key); |
+ let key = names[i]; |
+ result[index] = key; |
index++; |
} |
} |
let nums = this._nums; |
if (nums !== null) { |
- let names = _foreign_helper.JS('var', 'Object.getOwnPropertyNames(#)', nums); |
- let entries = dart.as(_foreign_helper.JS('int', '#.length', names), core.int); |
+ let names = Object.getOwnPropertyNames(nums); |
+ let entries = names.length; |
for (let i = 0; i < entries; i++) { |
- let key = dart.as(_foreign_helper.JS('num', '+#[#]', names, i), core.num); |
- _foreign_helper.JS('void', '#[#] = #', result, index, key); |
+ let key = +names[i]; |
+ result[index] = key; |
index++; |
} |
} |
let rest = this._rest; |
if (rest !== null) { |
- let names = _foreign_helper.JS('var', 'Object.getOwnPropertyNames(#)', rest); |
- let entries = dart.as(_foreign_helper.JS('int', '#.length', names), core.int); |
+ let names = Object.getOwnPropertyNames(rest); |
+ let entries = names.length; |
for (let i = 0; i < entries; i++) { |
- let key = _foreign_helper.JS('String', '#[#]', names, i); |
- let bucket = _foreign_helper.JS('var', '#[#]', rest, key); |
- let length = dart.as(_foreign_helper.JS('int', '#.length', bucket), core.int); |
+ let key = names[i]; |
+ let bucket = rest[key]; |
+ let length = bucket.length; |
for (let i = 0; i < length; i = 2) { |
- let key = _foreign_helper.JS('var', '#[#]', bucket, i); |
- _foreign_helper.JS('void', '#[#] = #', result, index, key); |
+ let key = bucket[i]; |
+ result[index] = key; |
index++; |
} |
} |
@@ -215,45 +215,45 @@ var collection; |
return dart.notNull(typeof key == string) && dart.notNull(!dart.equals(key, '__proto__')); |
} |
static _isNumericKey(key) { |
- return core.bool['&&'](dart.is(key, core.num), _foreign_helper.JS('bool', '(# & 0x3ffffff) === #', key, key)); |
+ return dart.notNull(dart.is(key, core.num)) && dart.notNull((key & 0x3ffffff) === key); |
} |
_computeHashCode(key) { |
- return dart.as(_foreign_helper.JS('int', '# & 0x3ffffff', dart.dload(key, 'hashCode')), core.int); |
+ return dart.dload(key, 'hashCode') & 0x3ffffff; |
} |
static _hasTableEntry(table, key) { |
- let entry = _foreign_helper.JS('var', '#[#]', table, key); |
+ let entry = table[key]; |
return entry !== null; |
} |
static _getTableEntry(table, key) { |
- let entry = _foreign_helper.JS('var', '#[#]', table, key); |
- return _foreign_helper.JS('bool', '# === #', entry, table) ? null : entry; |
+ let entry = table[key]; |
+ return entry === table ? null : entry; |
} |
static _setTableEntry(table, key, value) { |
if (value === null) { |
- _foreign_helper.JS('void', '#[#] = #', table, key, table); |
+ table[key] = table; |
} else { |
- _foreign_helper.JS('void', '#[#] = #', table, key, value); |
+ table[key] = value; |
} |
} |
static _deleteTableEntry(table, key) { |
- _foreign_helper.JS('void', 'delete #[#]', table, key); |
+ delete table[key]; |
} |
_getBucket(table, key) { |
let hash = this._computeHashCode(key); |
- return dart.as(_foreign_helper.JS('var', '#[#]', table, hash), core.List); |
+ return dart.as(table[hash], core.List); |
} |
_findBucketIndex(bucket, key) { |
if (bucket === null) |
return -1; |
- let length = dart.as(_foreign_helper.JS('int', '#.length', bucket), core.int); |
+ let length = bucket.length; |
for (let i = 0; i < length; i = 2) { |
- if (dart.equals(_foreign_helper.JS('var', '#[#]', bucket, i), key)) |
+ if (dart.equals(bucket[i], key)) |
return i; |
} |
return -1; |
} |
static _newHashTable() { |
- let table = _foreign_helper.JS('var', 'Object.create(null)'); |
+ let table = Object.create(null); |
let temporaryKey = '<non-identifier-key>'; |
_setTableEntry(table, temporaryKey, table); |
_deleteTableEntry(table, temporaryKey); |
@@ -266,14 +266,14 @@ var collection; |
let _IdentityHashMap$ = dart.generic(function(K, V) { |
class _IdentityHashMap extends _HashMap$(K, V) { |
_computeHashCode(key) { |
- return dart.as(_foreign_helper.JS('int', '# & 0x3ffffff', core.identityHashCode(key)), core.int); |
+ return core.identityHashCode(key) & 0x3ffffff; |
} |
_findBucketIndex(bucket, key) { |
if (bucket === null) |
return -1; |
- let length = dart.as(_foreign_helper.JS('int', '#.length', bucket), core.int); |
+ let length = bucket.length; |
for (let i = 0; i < length; i = 2) { |
- if (core.identical(_foreign_helper.JS('var', '#[#]', bucket, i), key)) |
+ if (core.identical(bucket[i], key)) |
return i; |
} |
return -1; |
@@ -309,14 +309,14 @@ var collection; |
return super._remove(key); |
} |
_computeHashCode(key) { |
- return dart.as(_foreign_helper.JS('int', '# & 0x3ffffff', this._hashCode(dart.as(key, K))), core.int); |
+ return this._hashCode(dart.as(key, K)) & 0x3ffffff; |
} |
_findBucketIndex(bucket, key) { |
if (bucket === null) |
return -1; |
- let length = dart.as(_foreign_helper.JS('int', '#.length', bucket), core.int); |
+ let length = bucket.length; |
for (let i = 0; i < length; i = 2) { |
- if (this._equals(dart.as(_foreign_helper.JS('var', '#[#]', bucket, i), K), dart.as(key, K))) |
+ if (this._equals(dart.as(bucket[i], K), dart.as(key, K))) |
return i; |
} |
return -1; |
@@ -348,9 +348,9 @@ var collection; |
} |
forEach(f) { |
let keys = dart.as(dart.dinvoke(this._map, '_computeKeys'), core.List); |
- for (let i = 0, length = dart.as(_foreign_helper.JS('int', '#.length', keys), core.int); i < length; i++) { |
- f(dart.as(_foreign_helper.JS('var', '#[#]', keys, i), E)); |
- if (_foreign_helper.JS('bool', '# !== #', keys, dart.dload(this._map, '_keys'))) { |
+ for (let i = 0, length = keys.length; i < length; i++) { |
+ f(dart.as(keys[i], E)); |
+ if (keys !== dart.dload(this._map, '_keys')) { |
throw new core.ConcurrentModificationError(this._map); |
} |
} |
@@ -373,14 +373,14 @@ var collection; |
moveNext() { |
let keys = this._keys; |
let offset = this._offset; |
- if (_foreign_helper.JS('bool', '# !== #', keys, dart.dload(this._map, '_keys'))) { |
+ if (keys !== dart.dload(this._map, '_keys')) { |
throw new core.ConcurrentModificationError(this._map); |
- } else if (offset['>='](_foreign_helper.JS('int', '#.length', keys))) { |
+ } else if (offset >= keys.length) { |
this._current = dart.as(null, E); |
return false; |
} else { |
- this._current = dart.as(_foreign_helper.JS('var', '#[#]', keys, offset), E); |
- this._offset = dart.as(_foreign_helper.JS('int', '#', offset + 1), core.int); |
+ this._current = dart.as(keys[offset], E); |
+ this._offset = offset + 1; |
return true; |
} |
} |
@@ -471,7 +471,7 @@ var collection; |
let index = this._findBucketIndex(bucket, key); |
if (index < 0) |
return dart.as(null, V); |
- let cell = dart.as(_foreign_helper.JS('var', '#[#]', bucket, index), LinkedHashMapCell); |
+ let cell = dart.as(bucket[index], LinkedHashMapCell); |
return dart.as(cell._value, V); |
} |
set(key, value) { |
@@ -494,18 +494,18 @@ var collection; |
if (rest === null) |
this._rest = rest = _newHashTable(); |
let hash = this._computeHashCode(key); |
- let bucket = _foreign_helper.JS('var', '#[#]', rest, hash); |
+ let bucket = rest[hash]; |
if (bucket === null) { |
let cell = this._newLinkedCell(key, value); |
- _setTableEntry(rest, hash, _foreign_helper.JS('var', '[#]', cell)); |
+ _setTableEntry(rest, hash, [cell]); |
} else { |
let index = this._findBucketIndex(bucket, key); |
if (index >= 0) { |
- let cell = dart.as(_foreign_helper.JS('var', '#[#]', bucket, index), LinkedHashMapCell); |
+ let cell = dart.as(bucket[index], LinkedHashMapCell); |
cell._value = value; |
} else { |
let cell = this._newLinkedCell(key, value); |
- _foreign_helper.JS('void', '#.push(#)', bucket, cell); |
+ bucket.push(cell); |
} |
} |
} |
@@ -533,7 +533,7 @@ var collection; |
let index = this._findBucketIndex(bucket, key); |
if (index < 0) |
return dart.as(null, V); |
- let cell = dart.as(_foreign_helper.JS('var', '#.splice(#, 1)[0]', bucket, index), LinkedHashMapCell); |
+ let cell = dart.as(bucket.splice(index, 1)[0], LinkedHashMapCell); |
this._unlinkCell(cell); |
return dart.as(cell._value, V); |
} |
@@ -611,38 +611,38 @@ var collection; |
return dart.notNull(typeof key == string) && dart.notNull(!dart.equals(key, '__proto__')); |
} |
static _isNumericKey(key) { |
- return core.bool['&&'](dart.is(key, core.num), _foreign_helper.JS('bool', '(# & 0x3ffffff) === #', key, key)); |
+ return dart.notNull(dart.is(key, core.num)) && dart.notNull((key & 0x3ffffff) === key); |
} |
_computeHashCode(key) { |
- return dart.as(_foreign_helper.JS('int', '# & 0x3ffffff', dart.dload(key, 'hashCode')), core.int); |
+ return dart.dload(key, 'hashCode') & 0x3ffffff; |
} |
static _getTableEntry(table, key) { |
- return _foreign_helper.JS('var', '#[#]', table, key); |
+ return table[key]; |
} |
static _setTableEntry(table, key, value) { |
dart.assert(value !== null); |
- _foreign_helper.JS('void', '#[#] = #', table, key, value); |
+ table[key] = value; |
} |
static _deleteTableEntry(table, key) { |
- _foreign_helper.JS('void', 'delete #[#]', table, key); |
+ delete table[key]; |
} |
_getBucket(table, key) { |
let hash = this._computeHashCode(key); |
- return dart.as(_foreign_helper.JS('var', '#[#]', table, hash), core.List); |
+ return dart.as(table[hash], core.List); |
} |
_findBucketIndex(bucket, key) { |
if (bucket === null) |
return -1; |
- let length = dart.as(_foreign_helper.JS('int', '#.length', bucket), core.int); |
+ let length = bucket.length; |
for (let i = 0; i < length; i++) { |
- let cell = dart.as(_foreign_helper.JS('var', '#[#]', bucket, i), LinkedHashMapCell); |
+ let cell = dart.as(bucket[i], LinkedHashMapCell); |
if (dart.equals(cell._key, key)) |
return i; |
} |
return -1; |
} |
static _newHashTable() { |
- let table = _foreign_helper.JS('var', 'Object.create(null)'); |
+ let table = Object.create(null); |
let temporaryKey = '<non-identifier-key>'; |
_setTableEntry(table, temporaryKey, table); |
_deleteTableEntry(table, temporaryKey); |
@@ -658,14 +658,14 @@ var collection; |
let _LinkedIdentityHashMap$ = dart.generic(function(K, V) { |
class _LinkedIdentityHashMap extends _LinkedHashMap$(K, V) { |
_computeHashCode(key) { |
- return dart.as(_foreign_helper.JS('int', '# & 0x3ffffff', core.identityHashCode(key)), core.int); |
+ return core.identityHashCode(key) & 0x3ffffff; |
} |
_findBucketIndex(bucket, key) { |
if (bucket === null) |
return -1; |
- let length = dart.as(_foreign_helper.JS('int', '#.length', bucket), core.int); |
+ let length = bucket.length; |
for (let i = 0; i < length; i++) { |
- let cell = dart.as(_foreign_helper.JS('var', '#[#]', bucket, i), LinkedHashMapCell); |
+ let cell = dart.as(bucket[i], LinkedHashMapCell); |
if (core.identical(cell._key, key)) |
return i; |
} |
@@ -702,14 +702,14 @@ var collection; |
return super._remove(key); |
} |
_computeHashCode(key) { |
- return dart.as(_foreign_helper.JS('int', '# & 0x3ffffff', this._hashCode(dart.as(key, K))), core.int); |
+ return this._hashCode(dart.as(key, K)) & 0x3ffffff; |
} |
_findBucketIndex(bucket, key) { |
if (bucket === null) |
return -1; |
- let length = dart.as(_foreign_helper.JS('int', '#.length', bucket), core.int); |
+ let length = bucket.length; |
for (let i = 0; i < length; i++) { |
- let cell = dart.as(_foreign_helper.JS('var', '#[#]', bucket, i), LinkedHashMapCell); |
+ let cell = dart.as(bucket[i], LinkedHashMapCell); |
if (this._equals(dart.as(cell._key, K), dart.as(key, K))) |
return i; |
} |
@@ -867,14 +867,14 @@ var collection; |
if (rest === null) |
this._rest = rest = _newHashTable(); |
let hash = this._computeHashCode(element); |
- let bucket = _foreign_helper.JS('var', '#[#]', rest, hash); |
+ let bucket = rest[hash]; |
if (bucket === null) { |
- _setTableEntry(rest, hash, _foreign_helper.JS('var', '[#]', element)); |
+ _setTableEntry(rest, hash, [element]); |
} else { |
let index = this._findBucketIndex(bucket, element); |
if (index >= 0) |
return false; |
- _foreign_helper.JS('void', '#.push(#)', bucket, element); |
+ bucket.push(element); |
} |
this._length++; |
this._elements = null; |
@@ -904,7 +904,7 @@ var collection; |
return false; |
this._length--; |
this._elements = null; |
- _foreign_helper.JS('void', '#.splice(#, 1)', bucket, index); |
+ bucket.splice(index, 1); |
return true; |
} |
clear() { |
@@ -920,34 +920,34 @@ var collection; |
let index = 0; |
let strings = this._strings; |
if (strings !== null) { |
- let names = _foreign_helper.JS('var', 'Object.getOwnPropertyNames(#)', strings); |
- let entries = dart.as(_foreign_helper.JS('int', '#.length', names), core.int); |
+ let names = Object.getOwnPropertyNames(strings); |
+ let entries = names.length; |
for (let i = 0; i < entries; i++) { |
- let element = dart.as(_foreign_helper.JS('String', '#[#]', names, i), core.String); |
- _foreign_helper.JS('void', '#[#] = #', result, index, element); |
+ let element = names[i]; |
+ result[index] = element; |
index++; |
} |
} |
let nums = this._nums; |
if (nums !== null) { |
- let names = _foreign_helper.JS('var', 'Object.getOwnPropertyNames(#)', nums); |
- let entries = dart.as(_foreign_helper.JS('int', '#.length', names), core.int); |
+ let names = Object.getOwnPropertyNames(nums); |
+ let entries = names.length; |
for (let i = 0; i < entries; i++) { |
- let element = dart.as(_foreign_helper.JS('num', '+#[#]', names, i), core.num); |
- _foreign_helper.JS('void', '#[#] = #', result, index, element); |
+ let element = +names[i]; |
+ result[index] = element; |
index++; |
} |
} |
let rest = this._rest; |
if (rest !== null) { |
- let names = _foreign_helper.JS('var', 'Object.getOwnPropertyNames(#)', rest); |
- let entries = dart.as(_foreign_helper.JS('int', '#.length', names), core.int); |
+ let names = Object.getOwnPropertyNames(rest); |
+ let entries = names.length; |
for (let i = 0; i < entries; i++) { |
- let entry = _foreign_helper.JS('String', '#[#]', names, i); |
- let bucket = _foreign_helper.JS('var', '#[#]', rest, entry); |
- let length = dart.as(_foreign_helper.JS('int', '#.length', bucket), core.int); |
+ let entry = names[i]; |
+ let bucket = rest[entry]; |
+ let length = bucket.length; |
for (let i = 0; i < length; i++) { |
- _foreign_helper.JS('void', '#[#] = #[#]', result, index, bucket, i); |
+ result[index] = bucket[i]; |
index++; |
} |
} |
@@ -977,38 +977,38 @@ var collection; |
return dart.notNull(typeof element == string) && dart.notNull(!dart.equals(element, '__proto__')); |
} |
static _isNumericElement(element) { |
- return core.bool['&&'](dart.is(element, core.num), _foreign_helper.JS('bool', '(# & 0x3ffffff) === #', element, element)); |
+ return dart.notNull(dart.is(element, core.num)) && dart.notNull((element & 0x3ffffff) === element); |
} |
_computeHashCode(element) { |
- return dart.as(_foreign_helper.JS('int', '# & 0x3ffffff', dart.dload(element, 'hashCode')), core.int); |
+ return dart.dload(element, 'hashCode') & 0x3ffffff; |
} |
static _hasTableEntry(table, key) { |
- let entry = _foreign_helper.JS('var', '#[#]', table, key); |
+ let entry = table[key]; |
return entry !== null; |
} |
static _setTableEntry(table, key, value) { |
dart.assert(value !== null); |
- _foreign_helper.JS('void', '#[#] = #', table, key, value); |
+ table[key] = value; |
} |
static _deleteTableEntry(table, key) { |
- _foreign_helper.JS('void', 'delete #[#]', table, key); |
+ delete table[key]; |
} |
_getBucket(table, element) { |
let hash = this._computeHashCode(element); |
- return dart.as(_foreign_helper.JS('var', '#[#]', table, hash), core.List); |
+ return dart.as(table[hash], core.List); |
} |
_findBucketIndex(bucket, element) { |
if (bucket === null) |
return -1; |
- let length = dart.as(_foreign_helper.JS('int', '#.length', bucket), core.int); |
+ let length = bucket.length; |
for (let i = 0; i < length; i++) { |
- if (dart.equals(_foreign_helper.JS('var', '#[#]', bucket, i), element)) |
+ if (dart.equals(bucket[i], element)) |
return i; |
} |
return -1; |
} |
static _newHashTable() { |
- let table = _foreign_helper.JS('var', 'Object.create(null)'); |
+ let table = Object.create(null); |
let temporaryKey = '<non-identifier-key>'; |
_setTableEntry(table, temporaryKey, table); |
_deleteTableEntry(table, temporaryKey); |
@@ -1024,14 +1024,14 @@ var collection; |
return new _IdentityHashSet(); |
} |
_computeHashCode(key) { |
- return dart.as(_foreign_helper.JS('int', '# & 0x3ffffff', core.identityHashCode(key)), core.int); |
+ return core.identityHashCode(key) & 0x3ffffff; |
} |
_findBucketIndex(bucket, element) { |
if (bucket === null) |
return -1; |
- let length = dart.as(_foreign_helper.JS('int', '#.length', bucket), core.int); |
+ let length = bucket.length; |
for (let i = 0; i < length; i++) { |
- if (core.identical(_foreign_helper.JS('var', '#[#]', bucket, i), element)) |
+ if (core.identical(bucket[i], element)) |
return i; |
} |
return -1; |
@@ -1054,15 +1054,15 @@ var collection; |
_findBucketIndex(bucket, element) { |
if (bucket === null) |
return -1; |
- let length = dart.as(_foreign_helper.JS('int', '#.length', bucket), core.int); |
+ let length = bucket.length; |
for (let i = 0; i < length; i++) { |
- if (this._equality(dart.as(_foreign_helper.JS('var', '#[#]', bucket, i), E), dart.as(element, E))) |
+ if (this._equality(dart.as(bucket[i], E), dart.as(element, E))) |
return i; |
} |
return -1; |
} |
_computeHashCode(element) { |
- return dart.as(_foreign_helper.JS('int', '# & 0x3ffffff', this._hasher(dart.as(element, E))), core.int); |
+ return this._hasher(dart.as(element, E)) & 0x3ffffff; |
} |
add(object) { |
return super._add(object); |
@@ -1100,14 +1100,14 @@ var collection; |
moveNext() { |
let elements = this._elements; |
let offset = this._offset; |
- if (_foreign_helper.JS('bool', '# !== #', elements, dart.dload(this._set, '_elements'))) { |
+ if (elements !== dart.dload(this._set, '_elements')) { |
throw new core.ConcurrentModificationError(this._set); |
- } else if (offset['>='](_foreign_helper.JS('int', '#.length', elements))) { |
+ } else if (offset >= elements.length) { |
this._current = dart.as(null, E); |
return false; |
} else { |
- this._current = dart.as(_foreign_helper.JS('var', '#[#]', elements, offset), E); |
- this._offset = dart.as(_foreign_helper.JS('int', '#', offset + 1), core.int); |
+ this._current = dart.as(elements[offset], E); |
+ this._offset = offset + 1; |
return true; |
} |
} |
@@ -1227,16 +1227,16 @@ var collection; |
if (rest === null) |
this._rest = rest = _newHashTable(); |
let hash = this._computeHashCode(element); |
- let bucket = _foreign_helper.JS('var', '#[#]', rest, hash); |
+ let bucket = rest[hash]; |
if (bucket === null) { |
let cell = this._newLinkedCell(element); |
- _setTableEntry(rest, hash, _foreign_helper.JS('var', '[#]', cell)); |
+ _setTableEntry(rest, hash, [cell]); |
} else { |
let index = this._findBucketIndex(bucket, element); |
if (index >= 0) |
return false; |
let cell = this._newLinkedCell(element); |
- _foreign_helper.JS('void', '#.push(#)', bucket, cell); |
+ bucket.push(cell); |
} |
return true; |
} |
@@ -1257,7 +1257,7 @@ var collection; |
let index = this._findBucketIndex(bucket, object); |
if (index < 0) |
return false; |
- let cell = dart.as(_foreign_helper.JS('var', '#.splice(#, 1)[0]', bucket, index), LinkedHashSetCell); |
+ let cell = dart.as(bucket.splice(index, 1)[0], LinkedHashSetCell); |
this._unlinkCell(cell); |
return true; |
} |
@@ -1344,38 +1344,38 @@ var collection; |
return dart.notNull(typeof element == string) && dart.notNull(!dart.equals(element, '__proto__')); |
} |
static _isNumericElement(element) { |
- return core.bool['&&'](dart.is(element, core.num), _foreign_helper.JS('bool', '(# & 0x3ffffff) === #', element, element)); |
+ return dart.notNull(dart.is(element, core.num)) && dart.notNull((element & 0x3ffffff) === element); |
} |
_computeHashCode(element) { |
- return dart.as(_foreign_helper.JS('int', '# & 0x3ffffff', dart.dload(element, 'hashCode')), core.int); |
+ return dart.dload(element, 'hashCode') & 0x3ffffff; |
} |
static _getTableEntry(table, key) { |
- return _foreign_helper.JS('var', '#[#]', table, key); |
+ return table[key]; |
} |
static _setTableEntry(table, key, value) { |
dart.assert(value !== null); |
- _foreign_helper.JS('void', '#[#] = #', table, key, value); |
+ table[key] = value; |
} |
static _deleteTableEntry(table, key) { |
- _foreign_helper.JS('void', 'delete #[#]', table, key); |
+ delete table[key]; |
} |
_getBucket(table, element) { |
let hash = this._computeHashCode(element); |
- return dart.as(_foreign_helper.JS('var', '#[#]', table, hash), core.List); |
+ return dart.as(table[hash], core.List); |
} |
_findBucketIndex(bucket, element) { |
if (bucket === null) |
return -1; |
- let length = dart.as(_foreign_helper.JS('int', '#.length', bucket), core.int); |
+ let length = bucket.length; |
for (let i = 0; i < length; i++) { |
- let cell = dart.as(_foreign_helper.JS('var', '#[#]', bucket, i), LinkedHashSetCell); |
+ let cell = dart.as(bucket[i], LinkedHashSetCell); |
if (dart.equals(cell._element, element)) |
return i; |
} |
return -1; |
} |
static _newHashTable() { |
- let table = _foreign_helper.JS('var', 'Object.create(null)'); |
+ let table = Object.create(null); |
let temporaryKey = '<non-identifier-key>'; |
_setTableEntry(table, temporaryKey, table); |
_deleteTableEntry(table, temporaryKey); |
@@ -1391,14 +1391,14 @@ var collection; |
return new _LinkedIdentityHashSet(); |
} |
_computeHashCode(key) { |
- return dart.as(_foreign_helper.JS('int', '# & 0x3ffffff', core.identityHashCode(key)), core.int); |
+ return core.identityHashCode(key) & 0x3ffffff; |
} |
_findBucketIndex(bucket, element) { |
if (bucket === null) |
return -1; |
- let length = dart.as(_foreign_helper.JS('int', '#.length', bucket), core.int); |
+ let length = bucket.length; |
for (let i = 0; i < length; i++) { |
- let cell = dart.as(_foreign_helper.JS('var', '#[#]', bucket, i), LinkedHashSetCell); |
+ let cell = dart.as(bucket[i], LinkedHashSetCell); |
if (core.identical(cell._element, element)) |
return i; |
} |
@@ -1422,16 +1422,16 @@ var collection; |
_findBucketIndex(bucket, element) { |
if (bucket === null) |
return -1; |
- let length = dart.as(_foreign_helper.JS('int', '#.length', bucket), core.int); |
+ let length = bucket.length; |
for (let i = 0; i < length; i++) { |
- let cell = dart.as(_foreign_helper.JS('var', '#[#]', bucket, i), LinkedHashSetCell); |
+ let cell = dart.as(bucket[i], LinkedHashSetCell); |
if (this._equality(dart.as(cell._element, E), dart.as(element, E))) |
return i; |
} |
return -1; |
} |
_computeHashCode(element) { |
- return dart.as(_foreign_helper.JS('int', '# & 0x3ffffff', this._hasher(dart.as(element, E))), core.int); |
+ return this._hasher(dart.as(element, E)) & 0x3ffffff; |
} |
add(element) { |
return super._add(element); |