bigint-number-same-value.js |
---
esid: sec-map.prototype.set
description: >
Observing the expected behavior of keys when a BigInt and Number have
the same value.
info: |
Map.prototype.set ( key , value )
...
Let p be the Record {[[key]]: key, [[value]]: value}.
Append p as the last element of entries.
...
features: [BigInt]
--- |
1075 |
browser.js |
|
0 |
constructor.js |
---
esid: sec-map-constructor
description: >
The Map constructor is the %Map% intrinsic object and the initial value of the
Map property of the global object.
--- |
402 |
does-not-throw-when-set-is-not-callable.js |
---
esid: sec-map-iterable
description: >
Creating a new Map object without arguments doesn't throw if `set` is not
callable
info: |
Map ( [ iterable ] )
When the Set function is called with optional argument iterable the following steps are taken:
...
5. If iterable is not present, let iterable be undefined.
6. If iterable is either undefined or null, let iter be undefined.
7. Else,
a. Let adder be Get(map, "set").
b. ReturnIfAbrupt(adder).
c. If IsCallable(adder) is false, throw a TypeError exception.
...
8. If iter is undefined, return map.
...
--- |
869 |
get-set-method-failure.js |
---
esid: sec-map-iterable
description: >
new Map returns abrupt from getting Map.prototype.set.
info: |
Map ( [ iterable ] )
...
7. Else,
a. Let adder be Get(map, "add").
b. ReturnIfAbrupt(adder).
--- |
561 |
groupBy |
|
|
is-a-constructor.js |
---
esid: sec-ecmascript-standard-built-in-objects
description: >
The Map constructor implements [[Construct]]
info: |
IsConstructor ( argument )
The abstract operation IsConstructor takes argument argument (an ECMAScript language value).
It determines if argument is a function object with a [[Construct]] internal method.
It performs the following steps when called:
If Type(argument) is not Object, return false.
If argument has a [[Construct]] internal method, return true.
Return false.
includes: [isConstructor.js]
features: [Reflect.construct, Map]
--- |
831 |
iterable-calls-set.js |
---
esid: sec-map-iterable
description: >
new Map calls `set` for each item on the iterable argument in order.
info: |
Map ( [ iterable ] )
...
9. Repeat
...
k. Let status be Call(adder, map, «k.[[value]], v.[[value]]»).
...
includes: [compareArray.js]
--- |
956 |
iterator-close-after-set-failure.js |
---
esid: sec-map-iterable
description: >
The iterator is closed when `Map.prototype.set` throws an error.
info: |
Map ( [ iterable ] )
...
9. Repeat
...
k. Let status be Call(adder, map, «k.[[value]], v.[[value]]»).
l. If status is an abrupt completion, return IteratorClose(iter, status).
features: [Symbol.iterator]
--- |
906 |
iterator-close-failure-after-set-failure.js |
---
esid: sec-map-iterable
description: >
The correct error is thrown `Map.prototype.set` throws an error and
the IteratorClose throws an error.
features: [Symbol.iterator]
--- |
709 |
iterator-is-undefined-throws.js |
---
esid: sec-map-objects
description: >
Throws a TypeError if the iterator of the iterable is undefined.
info: |
Map ( [ iterable ] )
...
9. Let iteratorRecord be ? GetIterator(iterable).
features: [Symbol.iterator]
--- |
503 |
iterator-item-first-entry-returns-abrupt.js |
---
esid: sec-map-iterable
description: >
Closes iterator if item first entry completes abruptly.
info: |
Map ( [ iterable ] )
...
9. Repeat
...
d. Let nextItem be IteratorValue(next).
...
g. Let k be Get(nextItem, "0").
h. If k is an abrupt completion, return IteratorClose(iter, k).
...
features: [Symbol.iterator]
--- |
1005 |
iterator-item-second-entry-returns-abrupt.js |
---
esid: sec-map-iterable
description: >
Closes iterator if item second entry completes abruptly.
info: |
Map ( [ iterable ] )
...
9. Repeat
...
d. Let nextItem be IteratorValue(next).
...
i. Let v be Get(nextItem, "1").
j. If v is an abrupt completion, return IteratorClose(iter, v).
...
features: [Symbol.iterator]
--- |
1006 |
iterator-items-are-not-object-close-iterator.js |
---
esid: sec-map-iterable
description: >
Closes the iterator after `not Object` error.
info: |
Map ( [ iterable ] )
...
9. Repeat
...
d. Let nextItem be IteratorValue(next).
e. ReturnIfAbrupt(nextItem).
f. If Type(nextItem) is not Object,
i. Let error be Completion{[[type]]: throw, [[value]]: a newly created
TypeError object, [[target]]:empty}.
ii. Return IteratorClose(iter, error).
features:
- Symbol
- Symbol.iterator
--- |
1557 |
iterator-items-are-not-object.js |
---
esid: sec-map-iterable
description: >
Throws a TypeError if iterable items are not Objects.
info: |
Map ( [ iterable ] )
...
9. Repeat
...
d. Let nextItem be IteratorValue(next).
e. ReturnIfAbrupt(nextItem).
f. If Type(nextItem) is not Object,
i. Let error be Completion{[[type]]: throw, [[value]]: a newly created
TypeError object, [[target]]:empty}.
ii. Return IteratorClose(iter, error).
features: [Symbol]
--- |
1085 |
iterator-next-failure.js |
---
esid: sec-map-iterable
description: >
The iterator is closed when iterable `next` throws an error.
info: |
Map ( [ iterable ] )
...
9. Repeat
a. Let next be IteratorStep(iter).
b. ReturnIfAbrupt(next).
features: [Symbol.iterator]
--- |
627 |
iterator-value-failure.js |
---
esid: sec-map-iterable
description: >
The iterator is closed when iterable `next` value throws an error.
info: |
Map ( [ iterable ] )
...
9. Repeat
...
d. Let nextItem be IteratorValue(next).
e. ReturnIfAbrupt(nextItem).
features: [Symbol.iterator]
--- |
731 |
length.js |
---
es6id: 23.1.2
description: Map.length is 0.
info: |
Properties of the Map Constructor
Besides the length property (whose value is 0)
includes: [propertyHelper.js]
--- |
450 |
map-iterable-empty-does-not-call-set.js |
---
esid: sec-map-iterable
description: >
A Map constructed with an empty iterable argument does not call set.
info: |
Map ( [ iterable ] )
When the Map function is called with optional argument the following steps are
taken:
...
8. If iter is undefined, return map.
9. Repeat
a. Let next be IteratorStep(iter).
b. ReturnIfAbrupt(next).
c. If next is false, return map.
--- |
777 |
map-iterable-throws-when-set-is-not-callable.js |
---
esid: sec-map-iterable
description: >
Throws a TypeError if `set` is not callable on Map constructor with a
iterable argument.
info: |
Map ( [ iterable ] )
When the Map function is called with optional argument the following steps are
taken:
...
5. If iterable is not present, let iterable be undefined.
6. If iterable is either undefined or null, let iter be undefined.
7. Else,
a. Let adder be Get(map, "set").
b. ReturnIfAbrupt(adder).
c. If IsCallable(adder) is false, throw a TypeError exception.
--- |
817 |
map-iterable.js |
---
esid: sec-map-iterable
description: >
Contructor returns a map object set with the elements from the iterable
argument.
info: |
Map ( [ iterable ] )
...
9. Repeat
a. Let next be IteratorStep(iter).
b. ReturnIfAbrupt(next).
c. If next is false, return map.
...
--- |
643 |
map-no-iterable-does-not-call-set.js |
---
esid: sec-map-iterable
description: >
A Map constructed without a iterable argument does not call set.
info: |
Map ( [ iterable ] )
When the Map function is called with optional argument the following steps are
taken:
...
5. If iterable is not present, let iterable be undefined.
6. If iterable is either undefined or null, let iter be undefined.
7. Else,
a. Let adder be Get(map, "set").
b. ReturnIfAbrupt(adder).
c. If IsCallable(adder) is false, throw a TypeError exception.
d. Let iter be GetIterator(iterable).
e. ReturnIfAbrupt(iter).
8. If iter is undefined, return map.
--- |
999 |
map-no-iterable.js |
---
esid: sec-map-iterable
description: >
Returns the new Map object with the new empty list if the iterable argument is
undefined.
info: |
Map ( [ iterable ] )
...
2. Let map be OrdinaryCreateFromConstructor(NewTarget, "%MapPrototype%",
«[[MapData]]» ).
...
4. Map map’s [[MapData]] internal slot to a new empty List.
5. If iterable is not present, let iterable be undefined.
6. If iterable is either undefined or null, let iter be undefined.
...
8. If iter is undefined, return map.
--- |
1065 |
map.js |
---
esid: sec-map-iterable
description: >
Map descriptor as a standard built-in object.
info: |
Map ( [ iterable ] )
17 ECMAScript Standard Built-in Objects
includes: [propertyHelper.js]
--- |
460 |
name.js |
---
esid: sec-map-iterable
description: Map.name value and descriptor.
info: |
Map ( [ iterable ] )
17 ECMAScript Standard Built-in Objects
includes: [propertyHelper.js]
--- |
456 |
newtarget.js |
---
esid: sec-map-iterable
description: >
The new Map object's prototype is Map.prototype
info: |
Map ( [ iterable ] )
When the Map function is called with optional argument the following steps
are taken:
...
2. Let map be OrdinaryCreateFromConstructor(NewTarget, "%MapPrototype%",
«[[MapData]]» ).
...
--- |
807 |
properties-of-map-instances.js |
---
es6id: 23.1.4
description: >
Map instances are ordinary objects that inherit properties from the Map
prototype.
--- |
426 |
properties-of-the-map-prototype-object.js |
---
es6id: 23.1.3
description: >
The prototype of Map.prototype is Object.prototype.
info: |
The Map prototype object is the intrinsic object %MapPrototype%. The value
of the [[Prototype]] internal slot of the Map prototype object is the
intrinsic object %ObjectPrototype% (19.1.3). The Map prototype object is an
ordinary object. It does not have a [[MapData]] internal slot.
--- |
703 |
proto-from-ctor-realm.js |
---
esid: sec-map-iterable
description: Default [[Prototype]] value derived from realm of the newTarget
info: |
[...]
3. Let map be ? OrdinaryCreateFromConstructor(NewTarget, "%MapPrototype%",
« [[MapData]] »).
[...]
9.1.14 GetPrototypeFromConstructor
[...]
3. Let proto be ? Get(constructor, "prototype").
4. If Type(proto) is not Object, then
a. Let realm be ? GetFunctionRealm(constructor).
b. Let proto be realm's intrinsic object named intrinsicDefaultProto.
[...]
features: [cross-realm, Reflect]
--- |
924 |
prototype |
|
|
prototype-of-map.js |
---
es6id: 23.1.2
description: >
The prototype of Map is the intrinsic FunctionPrototype.
info: |
The value of the [[Prototype]] internal slot of the Map constructor is the
intrinsic object %FunctionPrototype% (19.2.3).
--- |
530 |
shell.js |
---
description: |
Test if a given function is a constructor function.
defines: [isConstructor]
features: [Reflect.construct]
--- |
596 |
Symbol.species |
|
|
undefined-newtarget.js |
---
esid: sec-map-iterable
description: >
Throws a TypeError if Map is called without a newTarget.
info: |
Map ( [ iterable ] )
When the Map function is called with optional argument the following steps
are taken:
1. If NewTarget is undefined, throw a TypeError exception.
...
--- |
566 |
valid-keys.js |
---
esid: sec-map.prototype.set
description: Observing the expected behavior of valid keys
info: |
Map.prototype.set ( key , value )
...
Let p be the Record {[[key]]: key, [[value]]: value}.
Append p as the last element of entries.
...
features: [BigInt, Symbol, TypedArray, WeakRef, exponentiation]
--- |
15049 |