| Index: src/collection.js
|
| diff --git a/src/collection.js b/src/collection.js
|
| index d36fe18fa00dcd5fdae1210e5f9470c53cbc41f3..d5a8fe21a456c3d99bd6572853a9dddc82a04fcd 100644
|
| --- a/src/collection.js
|
| +++ b/src/collection.js
|
| @@ -88,6 +88,15 @@ function SetDelete(key) {
|
| }
|
|
|
|
|
| +function SetGetSize() {
|
| + if (!IS_SET(this)) {
|
| + throw MakeTypeError('incompatible_method_receiver',
|
| + ['Set.prototype.size', this]);
|
| + }
|
| + return %SetGetSize(this);
|
| +}
|
| +
|
| +
|
| function MapConstructor() {
|
| if (%_IsConstructCall()) {
|
| %MapInitialize(this);
|
| @@ -145,6 +154,15 @@ function MapDelete(key) {
|
| }
|
|
|
|
|
| +function MapGetSize() {
|
| + if (!IS_MAP(this)) {
|
| + throw MakeTypeError('incompatible_method_receiver',
|
| + ['Map.prototype.size', this]);
|
| + }
|
| + return %MapGetSize(this);
|
| +}
|
| +
|
| +
|
| function WeakMapConstructor() {
|
| if (%_IsConstructCall()) {
|
| %WeakMapInitialize(this);
|
| @@ -215,6 +233,7 @@ 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,
|
| @@ -222,6 +241,7 @@ function WeakMapDelete(key) {
|
| ));
|
|
|
| // 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,
|
|
|