Index: src/collection.js |
diff --git a/src/collection.js b/src/collection.js |
index 1f7aef4f0da6b02cf88974dd551992afe07105fc..9054187a12d0372ef1e028569a197059579f26ba 100644 |
--- a/src/collection.js |
+++ b/src/collection.js |
@@ -33,8 +33,6 @@ |
var $Set = global.Set; |
var $Map = global.Map; |
-var $WeakMap = global.WeakMap; |
-var $WeakSet = global.WeakSet; |
// Global sentinel to be used instead of undefined keys, which are not |
// supported internally but required for Harmony sets and maps. |
@@ -230,174 +228,3 @@ function SetUpMap() { |
} |
SetUpMap(); |
- |
- |
-// ------------------------------------------------------------------- |
-// Harmony WeakMap |
- |
-function WeakMapConstructor() { |
- if (%_IsConstructCall()) { |
- %WeakCollectionInitialize(this); |
- } else { |
- throw MakeTypeError('constructor_not_function', ['WeakMap']); |
- } |
-} |
- |
- |
-function WeakMapGet(key) { |
- if (!IS_WEAKMAP(this)) { |
- throw MakeTypeError('incompatible_method_receiver', |
- ['WeakMap.prototype.get', this]); |
- } |
- if (!(IS_SPEC_OBJECT(key) || IS_SYMBOL(key))) { |
- throw %MakeTypeError('invalid_weakmap_key', [this, key]); |
- } |
- return %WeakCollectionGet(this, key); |
-} |
- |
- |
-function WeakMapSet(key, value) { |
- if (!IS_WEAKMAP(this)) { |
- throw MakeTypeError('incompatible_method_receiver', |
- ['WeakMap.prototype.set', this]); |
- } |
- if (!(IS_SPEC_OBJECT(key) || IS_SYMBOL(key))) { |
- throw %MakeTypeError('invalid_weakmap_key', [this, key]); |
- } |
- return %WeakCollectionSet(this, key, value); |
-} |
- |
- |
-function WeakMapHas(key) { |
- if (!IS_WEAKMAP(this)) { |
- throw MakeTypeError('incompatible_method_receiver', |
- ['WeakMap.prototype.has', this]); |
- } |
- if (!(IS_SPEC_OBJECT(key) || IS_SYMBOL(key))) { |
- throw %MakeTypeError('invalid_weakmap_key', [this, key]); |
- } |
- return %WeakCollectionHas(this, key); |
-} |
- |
- |
-function WeakMapDelete(key) { |
- if (!IS_WEAKMAP(this)) { |
- throw MakeTypeError('incompatible_method_receiver', |
- ['WeakMap.prototype.delete', this]); |
- } |
- if (!(IS_SPEC_OBJECT(key) || IS_SYMBOL(key))) { |
- throw %MakeTypeError('invalid_weakmap_key', [this, key]); |
- } |
- return %WeakCollectionDelete(this, key); |
-} |
- |
- |
-function WeakMapClear() { |
- if (!IS_WEAKMAP(this)) { |
- throw MakeTypeError('incompatible_method_receiver', |
- ['WeakMap.prototype.clear', this]); |
- } |
- // Replace the internal table with a new empty table. |
- %WeakCollectionInitialize(this); |
-} |
- |
- |
-// ------------------------------------------------------------------- |
- |
-function SetUpWeakMap() { |
- %CheckIsBootstrapping(); |
- |
- %SetCode($WeakMap, WeakMapConstructor); |
- %FunctionSetPrototype($WeakMap, new $Object()); |
- %SetProperty($WeakMap.prototype, "constructor", $WeakMap, DONT_ENUM); |
- |
- // Set up the non-enumerable functions on the WeakMap prototype object. |
- InstallFunctions($WeakMap.prototype, DONT_ENUM, $Array( |
- "get", WeakMapGet, |
- "set", WeakMapSet, |
- "has", WeakMapHas, |
- "delete", WeakMapDelete, |
- "clear", WeakMapClear |
- )); |
-} |
- |
-SetUpWeakMap(); |
- |
- |
-// ------------------------------------------------------------------- |
-// Harmony WeakSet |
- |
-function WeakSetConstructor() { |
- if (%_IsConstructCall()) { |
- %WeakCollectionInitialize(this); |
- } else { |
- throw MakeTypeError('constructor_not_function', ['WeakSet']); |
- } |
-} |
- |
- |
-function WeakSetAdd(value) { |
- if (!IS_WEAKSET(this)) { |
- throw MakeTypeError('incompatible_method_receiver', |
- ['WeakSet.prototype.add', this]); |
- } |
- if (!(IS_SPEC_OBJECT(value) || IS_SYMBOL(value))) { |
- throw %MakeTypeError('invalid_weakset_value', [this, value]); |
- } |
- return %WeakCollectionSet(this, value, true); |
-} |
- |
- |
-function WeakSetHas(value) { |
- if (!IS_WEAKSET(this)) { |
- throw MakeTypeError('incompatible_method_receiver', |
- ['WeakSet.prototype.has', this]); |
- } |
- if (!(IS_SPEC_OBJECT(value) || IS_SYMBOL(value))) { |
- throw %MakeTypeError('invalid_weakset_value', [this, value]); |
- } |
- return %WeakCollectionHas(this, value); |
-} |
- |
- |
-function WeakSetDelete(value) { |
- if (!IS_WEAKSET(this)) { |
- throw MakeTypeError('incompatible_method_receiver', |
- ['WeakSet.prototype.delete', this]); |
- } |
- if (!(IS_SPEC_OBJECT(value) || IS_SYMBOL(value))) { |
- throw %MakeTypeError('invalid_weakset_value', [this, value]); |
- } |
- return %WeakCollectionDelete(this, value); |
-} |
- |
- |
-function WeakSetClear() { |
- if (!IS_WEAKSET(this)) { |
- throw MakeTypeError('incompatible_method_receiver', |
- ['WeakSet.prototype.clear', this]); |
- } |
- // Replace the internal table with a new empty table. |
- %WeakCollectionInitialize(this); |
-} |
- |
- |
-// ------------------------------------------------------------------- |
- |
-function SetUpWeakSet() { |
- %CheckIsBootstrapping(); |
- |
- %SetCode($WeakSet, WeakSetConstructor); |
- %FunctionSetPrototype($WeakSet, new $Object()); |
- %SetProperty($WeakSet.prototype, "constructor", $WeakSet, DONT_ENUM); |
- |
- // Set up the non-enumerable functions on the WeakSet prototype object. |
- InstallFunctions($WeakSet.prototype, DONT_ENUM, $Array( |
- "add", WeakSetAdd, |
- "has", WeakSetHas, |
- "delete", WeakSetDelete, |
- "clear", WeakSetClear |
- )); |
-} |
- |
-SetUpWeakSet(); |