|
|
|
The following steps are taken: 1. Let M be the this value. 2. Perform ? ( M , [[WeakMapData]]). 3. Let entries be the M .[[WeakMapData]]. 4. If ( key ) is not Object, return false . 5. For each { [[Key]], [[Value]] } p of entries , do a. If p .[[Key]] is not empty and p .[[Key]], key ) is true , then i. Set p .[[Key]] to empty . ii. Set p .[[Value]] to empty . iii. Return true . 6. Return false . NOTE The following steps are taken: 1. Let M be the this value. 2. Perform ? ( M , [[WeakMapData]]). 3. Let entries be the M .[[WeakMapData]]. 4. If ( key ) is not Object, return undefined . 5. For each { [[Key]], [[Value]] } p of entries , do a. If p .[[Key]] is not empty and p .[[Key]], key ) is true , return p .[[Value]]. 6. Return undefined . The following steps are taken: 1. Let M be the this value. 2. Perform ? ( M , [[WeakMapData]]). 3. Let entries be the M .[[WeakMapData]]. 4. If ( key ) is not Object, return false . 5. For each { [[Key]], [[Value]] } p of entries , do a. If p .[[Key]] is not empty and p .[[Key]], key ) is true , return true . 6. Return false . The following steps are taken: 1. Let M be the this value. 2. Perform ? ( M , [[WeakMapData]]). 3. Let entries be the M .[[WeakMapData]]. The value empty is used as a specification device to indicate that an entry has been deleted. Actual implementations may take other actions such as physically removing the entry from 24.3.3.3 WeakMap.prototype.get ( key ) 24.3.3.4 WeakMap.prototype.has ( key ) 24.3.3.5 WeakMap.prototype.set ( key , value ) 704 |