Index: src/js/collection.js |
diff --git a/src/js/collection.js b/src/js/collection.js |
index 0d7195d53e26757a68b5bdb3dcba34bea38857c2..bbb7ed247bb5d851b4e96d5b1f64e87ea412f9c9 100644 |
--- a/src/js/collection.js |
+++ b/src/js/collection.js |
@@ -19,6 +19,7 @@ var MakeTypeError; |
var MapIterator; |
var NumberIsNaN; |
var SetIterator; |
+var speciesSymbol = utils.ImportNow("species_symbol"); |
var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol"); |
utils.Import(function(from) { |
@@ -255,6 +256,12 @@ function SetForEach(f, receiver) { |
} |
} |
+ |
+function SetSpecies() { |
+ return this; |
+} |
+ |
+ |
// ------------------------------------------------------------------- |
%SetCode(GlobalSet, SetConstructor); |
@@ -266,6 +273,8 @@ function SetForEach(f, receiver) { |
%FunctionSetLength(SetForEach, 1); |
+utils.InstallGetter(GlobalSet, speciesSymbol, SetSpecies); |
+ |
// Set up the non-enumerable functions on the Set prototype object. |
utils.InstallGetter(GlobalSet.prototype, "size", SetGetSize); |
utils.InstallFunctions(GlobalSet.prototype, DONT_ENUM, [ |
@@ -435,6 +444,11 @@ function MapForEach(f, receiver) { |
} |
} |
+ |
+function MapSpecies() { |
+ return this; |
+} |
+ |
// ------------------------------------------------------------------- |
%SetCode(GlobalMap, MapConstructor); |
@@ -446,6 +460,8 @@ function MapForEach(f, receiver) { |
%FunctionSetLength(MapForEach, 1); |
+utils.InstallGetter(GlobalMap, speciesSymbol, MapSpecies); |
+ |
// Set up the non-enumerable functions on the Map prototype object. |
utils.InstallGetter(GlobalMap.prototype, "size", MapGetSize); |
utils.InstallFunctions(GlobalMap.prototype, DONT_ENUM, [ |