browser.js |
|
0 |
constructor.js |
---
esid: sec-weakmap-constructor
description: >
The WeakMap constructor is the %WeakMap% intrinsic object and the initial
value of the WeakMap property of the global object.
--- |
432 |
empty-iterable.js |
---
esid: sec-weakmap-iterable
description: >
If the iterable argument is empty, return new WeakMap object.
info: |
23.3.1.1 WeakMap ( [ iterable ] )
...
9. Repeat
a. Let next be IteratorStep(iter).
b. ReturnIfAbrupt(next).
c. If next is false, return map.
...
--- |
808 |
get-set-method-failure.js |
---
esid: sec-weakmap-iterable
description: >
Return abrupt after getting `set` method.
info: |
23.3.1.1 WeakMap ( [ iterable ] )
...
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).
...
--- |
733 |
is-a-constructor.js |
---
esid: sec-ecmascript-standard-built-in-objects
description: >
The WeakMap 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, WeakMap]
--- |
851 |
iterable-failure.js |
---
esid: sec-weakmap-iterable
description: >
If the iterable argument is undefined, return new WeakMap object.
info: |
23.3.1.1 WeakMap ( [ iterable ] )
...
7. Else,
d. Let iter be GetIterator(iterable).
e. ReturnIfAbrupt(iter).
...
--- |
483 |
iterable-with-object-keys.js |
---
esid: sec-weakmap-iterable
description: >
Returns the new WeakMap adding entries from the iterable parameter, with
Object keys.
info: |
WeakMap ( [ _iterable_ ] )
5. Let _adder_ be ? Get(_map_, *"set"*).
6. Return ? AddEntriesFromIterable(_map_, _iterable_, _adder_).
AddEntriesFromIterable:
3. Repeat,
i. Let _status_ be Completion(Call(_adder_, _target_, « _k_, _v_ »)).
WeakMap.prototype.set( _key_, _value_ ):
6. Let _p_ be the Record {[[Key]]: _key_, [[Value]]: _value_}.
7. Append _p_ as the last element of _entries_.
features: [WeakMap]
--- |
1579 |
iterable-with-symbol-keys.js |
---
esid: sec-weakmap-iterable
description: >
Returns the new WeakMap adding entries from the iterable parameter, with
Symbol keys.
info: |
WeakMap ( [ _iterable_ ] )
5. Let _adder_ be ? Get(_map_, *"set"*).
6. Return ? AddEntriesFromIterable(_map_, _iterable_, _adder_).
AddEntriesFromIterable:
3. Repeat,
i. Let _status_ be Completion(Call(_adder_, _target_, « _k_, _v_ »)).
WeakMap.prototype.set( _key_, _value_ ):
6. Let _p_ be the Record {[[Key]]: _key_, [[Value]]: _value_}.
7. Append _p_ as the last element of _entries_.
features: [Symbol, WeakMap, symbols-as-weakmap-keys]
--- |
1827 |
iterator-close-after-set-failure.js |
---
esid: sec-weakmap-iterable
description: >
Return IteratorClose(iter, status) if fail on adding value on constructing.
info: |
WeakMap ( [ 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]
--- |
1004 |
iterator-item-first-entry-returns-abrupt.js |
---
esid: sec-weakmap-iterable
description: >
Closes iterator if item first entry completes abruptly.
info: |
WeakMap ( [ 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]
--- |
1017 |
iterator-item-second-entry-returns-abrupt.js |
---
esid: sec-weakmap-iterable
description: >
Closes iterator if item second entry completes abruptly.
info: |
WeakMap ( [ 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]
--- |
1018 |
iterator-items-are-not-object-close-iterator.js |
---
esid: sec-weakmap-iterable
description: >
Closes the iterator object after not object error on next item.
info: |
WeakMap ( [ 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
--- |
1611 |
iterator-items-keys-cannot-be-held-weakly.js |
---
esid: sec-weakmap-iterable
description: >
Throws a TypeError if keys in iterable items cannot be held weakly.
info: |
WeakMap ( [ _iterable_ ] )
5. Let _adder_ be ? Get(_map_, *"set"*).
6. Return ? AddEntriesFromIterable(_map_, _iterable_, _adder_).
AddEntriesFromIterable:
3. Repeat,
i. Let _status_ be Completion(Call(_adder_, _target_, « _k_, _v_ »)).
j. IfAbruptCloseIterator(_status_, _iteratorRecord_).
WeakMap.prototype.set( _key_, _value_ ):
4. If CanBeHeldWeakly(_key_) is *false*, throw a *TypeError* exception.
features: [Symbol, WeakMap]
--- |
1322 |
iterator-next-failure.js |
---
esid: sec-weakmap-iterable
description: >
Return abrupt from next iterator step.
info: |
23.3.1.1 WeakMap ( [ iterable ] )
...
9. Repeat
a. Let next be IteratorStep(iter).
b. ReturnIfAbrupt(next).
...
features: [Symbol.iterator]
--- |
634 |
iterator-value-failure.js |
---
esid: sec-weakmap-iterable
description: >
If the iterable argument is empty, return new WeakMap object.
info: |
23.3.1.1 WeakMap ( [ iterable ] )
...
9. Repeat
...
d. Let nextItem be IteratorValue(next).
e. ReturnIfAbrupt(nextItem).
...
features: [Symbol.iterator]
--- |
755 |
length.js |
---
esid: sec-properties-of-the-weakmap-constructor
description: >
The length property of the WeakMap constructor is 0.
includes: [propertyHelper.js]
--- |
434 |
name.js |
---
esid: sec-weakmap-iterable
description: >
WeakMap ( [ iterable ] )
17 ECMAScript Standard Built-in Objects
includes: [propertyHelper.js]
--- |
439 |
no-iterable.js |
---
esid: sec-weakmap-iterable
description: >
If the iterable argument is undefined, return new WeakMap object.
info: |
WeakMap ( [ iterable ] )
...
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.
...
--- |
777 |
properties-of-map-instances.js |
---
esid: sec-properties-of-weakmap-instances
description: >
WeakMap instances are ordinary objects that inherit properties from the
WeakMap prototype.
--- |
478 |
properties-of-the-weakmap-prototype-object.js |
---
esid: sec-properties-of-the-weakmap-prototype-object
description: >
The WeakMap.prototype's prototype is Object.prototype.
info: |
23.3.3 Properties of the WeakMap Prototype Object
The WeakMap prototype object is the intrinsic object %WeakMapPrototype%. The
value of the [[Prototype]] internal slot of the WeakMap prototype object is
the intrinsic object %ObjectPrototype% (19.1.3). The WeakMap prototype object
is an ordinary object. It does not have a [[WeakMapData]] internal slot.
--- |
830 |
proto-from-ctor-realm.js |
---
esid: sec-weakmap-iterable
description: Default [[Prototype]] value derived from realm of the newTarget
info: |
[...]
2. Let map be ? OrdinaryCreateFromConstructor(NewTarget,
"%WeakMapPrototype%", « [[WeakMapData]] »).
[...]
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]
--- |
944 |
prototype |
|
|
prototype-of-weakmap.js |
---
esid: sec-properties-of-the-weakmap-constructor
description: >
The value of the [[Prototype]] internal slot of the WeakMap constructor is the
intrinsic object %FunctionPrototype% (19.2.3).
--- |
509 |
set-not-callable-throws.js |
---
esid: sec-weakmap-iterable
description: >
Throws TypeError if add is not callable on constructor call.
info: |
23.3.1.1 WeakMap ( [ iterable ] )
...
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.
...
--- |
716 |
shell.js |
---
description: |
Test if a given function is a constructor function.
defines: [isConstructor]
features: [Reflect.construct]
--- |
596 |
undefined-newtarget.js |
---
esid: sec-weakmap-iterable
description: >
Throws a TypeError if NewTarget is undefined.
info: |
23.3.1.1 WeakMap ( [ iterable ] )
1. If NewTarget is undefined, throw a TypeError exception.
--- |
482 |
weakmap.js |
---
esid: sec-weakmap-iterable
description: >
WeakMap ( [ iterable ] )
17 ECMAScript Standard Built-in Objects
includes: [propertyHelper.js]
--- |
423 |