diff options
Diffstat (limited to 'deps/v8/src/collection.js')
-rw-r--r-- | deps/v8/src/collection.js | 46 |
1 files changed, 44 insertions, 2 deletions
diff --git a/deps/v8/src/collection.js b/deps/v8/src/collection.js index d36fe18fa0..b3c2db72d7 100644 --- a/deps/v8/src/collection.js +++ b/deps/v8/src/collection.js @@ -88,6 +88,25 @@ function SetDelete(key) { } +function SetGetSize() { + if (!IS_SET(this)) { + throw MakeTypeError('incompatible_method_receiver', + ['Set.prototype.size', this]); + } + return %SetGetSize(this); +} + + +function SetClear() { + if (!IS_SET(this)) { + throw MakeTypeError('incompatible_method_receiver', + ['Set.prototype.clear', this]); + } + // Replace the internal table with a new empty table. + %SetInitialize(this); +} + + function MapConstructor() { if (%_IsConstructCall()) { %MapInitialize(this); @@ -145,6 +164,25 @@ function MapDelete(key) { } +function MapGetSize() { + if (!IS_MAP(this)) { + throw MakeTypeError('incompatible_method_receiver', + ['Map.prototype.size', this]); + } + return %MapGetSize(this); +} + + +function MapClear() { + if (!IS_MAP(this)) { + throw MakeTypeError('incompatible_method_receiver', + ['Map.prototype.clear', this]); + } + // Replace the internal table with a new empty table. + %MapInitialize(this); +} + + function WeakMapConstructor() { if (%_IsConstructCall()) { %WeakMapInitialize(this); @@ -215,18 +253,22 @@ function WeakMapDelete(key) { %SetProperty($Map.prototype, "constructor", $Map, DONT_ENUM); // Set up the non-enumerable functions on the Set prototype object. + InstallGetter($Set.prototype, "size", SetGetSize); InstallFunctions($Set.prototype, DONT_ENUM, $Array( "add", SetAdd, "has", SetHas, - "delete", SetDelete + "delete", SetDelete, + "clear", SetClear )); // Set up the non-enumerable functions on the Map prototype object. + InstallGetter($Map.prototype, "size", MapGetSize); InstallFunctions($Map.prototype, DONT_ENUM, $Array( "get", MapGet, "set", MapSet, "has", MapHas, - "delete", MapDelete + "delete", MapDelete, + "clear", MapClear )); // Set up the WeakMap constructor function. |