| OLD | NEW | 
|---|
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 (function(global, utils) { | 5 (function(global, utils) { | 
| 6 "use strict"; | 6 "use strict"; | 
| 7 | 7 | 
| 8 %CheckIsBootstrapping(); | 8 %CheckIsBootstrapping(); | 
| 9 | 9 | 
| 10 // ------------------------------------------------------------------- | 10 // ------------------------------------------------------------------- | 
| 11 // Imports | 11 // Imports | 
| 12 | 12 | 
| 13 var GlobalMap = global.Map; | 13 var GlobalMap = global.Map; | 
| 14 var GlobalObject = global.Object; | 14 var GlobalObject = global.Object; | 
| 15 var GlobalSet = global.Set; | 15 var GlobalSet = global.Set; | 
| 16 var hashCodeSymbol = utils.ImportNow("hash_code_symbol"); | 16 var hashCodeSymbol = utils.ImportNow("hash_code_symbol"); | 
| 17 var MathRandom = global.Math.random; | 17 var MathRandom = global.Math.random; | 
| 18 var MapIterator; | 18 var MapIterator; | 
| 19 var SetIterator; | 19 var SetIterator; | 
| 20 var speciesSymbol = utils.ImportNow("species_symbol"); |  | 
| 21 var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol"); | 20 var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol"); | 
| 22 | 21 | 
| 23 utils.Import(function(from) { | 22 utils.Import(function(from) { | 
| 24   MapIterator = from.MapIterator; | 23   MapIterator = from.MapIterator; | 
| 25   SetIterator = from.SetIterator; | 24   SetIterator = from.SetIterator; | 
| 26 }); | 25 }); | 
| 27 | 26 | 
| 28 // ------------------------------------------------------------------- | 27 // ------------------------------------------------------------------- | 
| 29 | 28 | 
| 30 function HashToEntry(table, hash, numBuckets) { | 29 function HashToEntry(table, hash, numBuckets) { | 
| (...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 244 | 243 | 
| 245   var iterator = new SetIterator(this, ITERATOR_KIND_VALUES); | 244   var iterator = new SetIterator(this, ITERATOR_KIND_VALUES); | 
| 246   var key; | 245   var key; | 
| 247   var value_array = [UNDEFINED]; | 246   var value_array = [UNDEFINED]; | 
| 248   while (%SetIteratorNext(iterator, value_array)) { | 247   while (%SetIteratorNext(iterator, value_array)) { | 
| 249     key = value_array[0]; | 248     key = value_array[0]; | 
| 250     %_Call(f, receiver, key, key, this); | 249     %_Call(f, receiver, key, key, this); | 
| 251   } | 250   } | 
| 252 } | 251 } | 
| 253 | 252 | 
| 254 |  | 
| 255 function SetSpecies() { |  | 
| 256   return this; |  | 
| 257 } |  | 
| 258 |  | 
| 259 |  | 
| 260 // ------------------------------------------------------------------- | 253 // ------------------------------------------------------------------- | 
| 261 | 254 | 
| 262 %SetCode(GlobalSet, SetConstructor); | 255 %SetCode(GlobalSet, SetConstructor); | 
| 263 %FunctionSetLength(GlobalSet, 0); | 256 %FunctionSetLength(GlobalSet, 0); | 
| 264 %FunctionSetPrototype(GlobalSet, new GlobalObject()); | 257 %FunctionSetPrototype(GlobalSet, new GlobalObject()); | 
| 265 %AddNamedProperty(GlobalSet.prototype, "constructor", GlobalSet, DONT_ENUM); | 258 %AddNamedProperty(GlobalSet.prototype, "constructor", GlobalSet, DONT_ENUM); | 
| 266 %AddNamedProperty(GlobalSet.prototype, toStringTagSymbol, "Set", | 259 %AddNamedProperty(GlobalSet.prototype, toStringTagSymbol, "Set", | 
| 267                   DONT_ENUM | READ_ONLY); | 260                   DONT_ENUM | READ_ONLY); | 
| 268 | 261 | 
| 269 %FunctionSetLength(SetForEach, 1); | 262 %FunctionSetLength(SetForEach, 1); | 
| 270 | 263 | 
| 271 utils.InstallGetter(GlobalSet, speciesSymbol, SetSpecies); |  | 
| 272 |  | 
| 273 // Set up the non-enumerable functions on the Set prototype object. | 264 // Set up the non-enumerable functions on the Set prototype object. | 
| 274 utils.InstallGetter(GlobalSet.prototype, "size", SetGetSize); | 265 utils.InstallGetter(GlobalSet.prototype, "size", SetGetSize); | 
| 275 utils.InstallFunctions(GlobalSet.prototype, DONT_ENUM, [ | 266 utils.InstallFunctions(GlobalSet.prototype, DONT_ENUM, [ | 
| 276   "add", SetAdd, | 267   "add", SetAdd, | 
| 277   "has", SetHas, | 268   "has", SetHas, | 
| 278   "delete", SetDelete, | 269   "delete", SetDelete, | 
| 279   "clear", SetClearJS, | 270   "clear", SetClearJS, | 
| 280   "forEach", SetForEach | 271   "forEach", SetForEach | 
| 281 ]); | 272 ]); | 
| 282 | 273 | 
| (...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 432 | 423 | 
| 433   if (!IS_CALLABLE(f)) throw %make_type_error(kCalledNonCallable, f); | 424   if (!IS_CALLABLE(f)) throw %make_type_error(kCalledNonCallable, f); | 
| 434 | 425 | 
| 435   var iterator = new MapIterator(this, ITERATOR_KIND_ENTRIES); | 426   var iterator = new MapIterator(this, ITERATOR_KIND_ENTRIES); | 
| 436   var value_array = [UNDEFINED, UNDEFINED]; | 427   var value_array = [UNDEFINED, UNDEFINED]; | 
| 437   while (%MapIteratorNext(iterator, value_array)) { | 428   while (%MapIteratorNext(iterator, value_array)) { | 
| 438     %_Call(f, receiver, value_array[1], value_array[0], this); | 429     %_Call(f, receiver, value_array[1], value_array[0], this); | 
| 439   } | 430   } | 
| 440 } | 431 } | 
| 441 | 432 | 
| 442 |  | 
| 443 function MapSpecies() { |  | 
| 444   return this; |  | 
| 445 } |  | 
| 446 |  | 
| 447 // ------------------------------------------------------------------- | 433 // ------------------------------------------------------------------- | 
| 448 | 434 | 
| 449 %SetCode(GlobalMap, MapConstructor); | 435 %SetCode(GlobalMap, MapConstructor); | 
| 450 %FunctionSetLength(GlobalMap, 0); | 436 %FunctionSetLength(GlobalMap, 0); | 
| 451 %FunctionSetPrototype(GlobalMap, new GlobalObject()); | 437 %FunctionSetPrototype(GlobalMap, new GlobalObject()); | 
| 452 %AddNamedProperty(GlobalMap.prototype, "constructor", GlobalMap, DONT_ENUM); | 438 %AddNamedProperty(GlobalMap.prototype, "constructor", GlobalMap, DONT_ENUM); | 
| 453 %AddNamedProperty( | 439 %AddNamedProperty( | 
| 454     GlobalMap.prototype, toStringTagSymbol, "Map", DONT_ENUM | READ_ONLY); | 440     GlobalMap.prototype, toStringTagSymbol, "Map", DONT_ENUM | READ_ONLY); | 
| 455 | 441 | 
| 456 %FunctionSetLength(MapForEach, 1); | 442 %FunctionSetLength(MapForEach, 1); | 
| 457 | 443 | 
| 458 utils.InstallGetter(GlobalMap, speciesSymbol, MapSpecies); |  | 
| 459 |  | 
| 460 // Set up the non-enumerable functions on the Map prototype object. | 444 // Set up the non-enumerable functions on the Map prototype object. | 
| 461 utils.InstallGetter(GlobalMap.prototype, "size", MapGetSize); | 445 utils.InstallGetter(GlobalMap.prototype, "size", MapGetSize); | 
| 462 utils.InstallFunctions(GlobalMap.prototype, DONT_ENUM, [ | 446 utils.InstallFunctions(GlobalMap.prototype, DONT_ENUM, [ | 
| 463   "get", MapGet, | 447   "get", MapGet, | 
| 464   "set", MapSet, | 448   "set", MapSet, | 
| 465   "has", MapHas, | 449   "has", MapHas, | 
| 466   "delete", MapDelete, | 450   "delete", MapDelete, | 
| 467   "clear", MapClearJS, | 451   "clear", MapClearJS, | 
| 468   "forEach", MapForEach | 452   "forEach", MapForEach | 
| 469 ]); | 453 ]); | 
| (...skipping 10 matching lines...) Expand all  Loading... | 
| 480   "set_has", SetHas, | 464   "set_has", SetHas, | 
| 481   "set_delete", SetDelete, | 465   "set_delete", SetDelete, | 
| 482 ]); | 466 ]); | 
| 483 | 467 | 
| 484 utils.Export(function(to) { | 468 utils.Export(function(to) { | 
| 485   to.GetExistingHash = GetExistingHash; | 469   to.GetExistingHash = GetExistingHash; | 
| 486   to.GetHash = GetHash; | 470   to.GetHash = GetHash; | 
| 487 }); | 471 }); | 
| 488 | 472 | 
| 489 }) | 473 }) | 
| OLD | NEW | 
|---|