browser.js |
|
0 |
call-in-prototype-index.js |
---
esid: sec-proxy-object-internal-methods-and-internal-slots-hasproperty-p
description: >
Ordinary [[HasProperty]] forwards call to Proxy "has" trap with correct arguments.
(integer index property name)
info: |
OrdinaryHasProperty ( O, P )
...
4. Let parent be ? O.[[GetPrototypeOf]]().
5. If parent is not null, then
a. Return ? parent.[[HasProperty]](P).
[[HasProperty]] ( P )
...
8. Let booleanTrapResult be ! ToBoolean(? Call(trap, handler, « target, P »)).
...
10. Return booleanTrapResult.
includes: [proxyTrapsHelper.js]
features: [Proxy]
--- |
1301 |
call-in-prototype.js |
---
esid: sec-proxy-object-internal-methods-and-internal-slots-hasproperty-p
description: >
Ordinary [[HasProperty]] forwards call to Proxy "has" trap with correct arguments.
info: |
OrdinaryHasProperty ( O, P )
...
4. Let parent be ? O.[[GetPrototypeOf]]().
5. If parent is not null, then
a. Return ? parent.[[HasProperty]](P).
[[HasProperty]] ( P )
...
8. Let booleanTrapResult be ! ToBoolean(? Call(trap, handler, « target, P »)).
...
10. Return booleanTrapResult.
includes: [proxyTrapsHelper.js]
features: [Proxy]
--- |
1261 |
call-in.js |
---
es6id: 9.5.7
description: >
A `in` check trigger trap.call(handler, target, P);
info: |
[[HasProperty]] (P)
...
9. Let booleanTrapResult be ToBoolean(Call(trap, handler, «target, P»)).
...
features: [Proxy]
--- |
827 |
call-object-create.js |
---
es6id: 9.5.7
description: >
`.. in Object.create(proxy)` triggers trap.call(handler, target, P);
info: |
[[HasProperty]] (P)
...
2. Let handler be the value of the [[ProxyHandler]] internal slot of O.
...
5. Let target be the value of the [[ProxyTarget]] internal slot of O.
6. Let trap be GetMethod(handler, "has").
...
9. Let booleanTrapResult be ToBoolean(Call(trap, handler, «target, P»)).
...
features: [Proxy]
--- |
1067 |
call-with.js |
---
es6id: 9.5.7
description: >
A `with` variable check trigger trap.call(handler, target, P);
info: |
[[HasProperty]] (P)
...
9. Let booleanTrapResult be ToBoolean(Call(trap, handler, «target, P»)).
...
flags: [noStrict]
features: [Proxy]
--- |
768 |
null-handler-using-with.js |
---
es6id: 9.5.7
description: >
Throws a TypeError exception if handler is null.
flags: [noStrict]
features: [Proxy]
--- |
413 |
null-handler.js |
---
es6id: 9.5.7
description: >
Throws a TypeError exception if handler is null.
features: [Proxy]
--- |
382 |
return-false-target-not-extensible-using-with.js |
---
es6id: 9.5.7
description: >
A property cannot be reported as non-existent, if it exists as an own
property of the target object and the target object is not extensible.
info: |
[[HasProperty]] (P)
...
11. If booleanTrapResult is false, then
a. Let targetDesc be target.[[GetOwnProperty]](P).
b. ReturnIfAbrupt(targetDesc).
c. If targetDesc is not undefined, then
...
ii. Let extensibleTarget be IsExtensible(target).
...
iv. If extensibleTarget is false, throw a TypeError exception.
...
flags: [noStrict]
features: [Proxy]
--- |
1095 |
return-false-target-not-extensible.js |
---
es6id: 9.5.7
description: >
A property cannot be reported as non-existent, if it exists as an own
property of the target object and the target object is not extensible.
info: |
[[HasProperty]] (P)
...
11. If booleanTrapResult is false, then
a. Let targetDesc be target.[[GetOwnProperty]](P).
b. ReturnIfAbrupt(targetDesc).
c. If targetDesc is not undefined, then
...
ii. Let extensibleTarget be IsExtensible(target).
...
iv. If extensibleTarget is false, throw a TypeError exception.
...
features: [Proxy]
--- |
1064 |
return-false-target-prop-exists-using-with.js |
---
es6id: 9.5.7
description: >
The result of [[HasProperty]] is a Boolean value and will affect has
checkings. False returned when target property exists;
info: |
[[HasProperty]] (P)
...
12. Return booleanTrapResult.
flags: [noStrict]
features: [Proxy]
--- |
609 |
return-false-target-prop-exists.js |
---
es6id: 9.5.7
description: >
The result of [[HasProperty]] is a Boolean value and will affect has
checkings. False returned when target property exists;
info: |
[[HasProperty]] (P)
...
12. Return booleanTrapResult.
features: [Proxy]
--- |
576 |
return-false-targetdesc-not-configurable-using-with.js |
---
es6id: 9.5.7
description: >
A property cannot be reported as non-existent, if it exists as a
non-configurable own property of the target object.
info: |
[[HasProperty]] (P)
...
11. If booleanTrapResult is false, then
...
c. If targetDesc is not undefined, then
i. If targetDesc.[[Configurable]] is false, throw a TypeError
exception.
...
flags: [noStrict]
features: [Proxy]
--- |
879 |
return-false-targetdesc-not-configurable.js |
---
es6id: 9.5.7
description: >
A property cannot be reported as non-existent, if it exists as a
non-configurable own property of the target object.
info: |
[[HasProperty]] (P)
...
11. If booleanTrapResult is false, then
...
c. If targetDesc is not undefined, then
i. If targetDesc.[[Configurable]] is false, throw a TypeError
exception.
...
features: [Proxy]
--- |
848 |
return-is-abrupt-in.js |
---
es6id: 9.5.7
description: >
Trap returns abrupt. Using `prop in obj`.
info: |
[[HasProperty]] (P)
...
9. Let booleanTrapResult be ToBoolean(Call(trap, handler, «target, P»)).
10. ReturnIfAbrupt(booleanTrapResult).
...
features: [Proxy]
--- |
579 |
return-is-abrupt-with.js |
---
es6id: 9.5.7
description: >
Trap returns abrupt. Using `with`.
info: |
[[HasProperty]] (P)
...
9. Let booleanTrapResult be ToBoolean(Call(trap, handler, «target, P»)).
10. ReturnIfAbrupt(booleanTrapResult).
...
flags: [noStrict]
features: [Proxy]
--- |
603 |
return-true-target-prop-exists-using-with.js |
---
es6id: 9.5.7
description: >
The result of [[HasProperty]] is a Boolean value and will affect has
checkings. True returned when target property exists;
flags: [noStrict]
features: [Proxy]
--- |
567 |
return-true-target-prop-exists.js |
---
es6id: 9.5.7
description: >
The result of [[HasProperty]] is a Boolean value and will affect has
checkings. True returned when target property exists;
features: [Proxy]
--- |
495 |
return-true-without-same-target-prop.js |
---
es6id: 9.5.7
description: >
The result of [[HasProperty]] is a Boolean value and will affect has
checkings. True returned when target property doesn't exists;
features: [Proxy]
--- |
474 |
shell.js |
---
description: |
Used to assert the correctness of object behavior in the presence
and context of Proxy objects.
defines: [allowProxyTraps]
--- |
1810 |
trap-is-missing-target-is-proxy.js |
---
esid: sec-proxy-object-internal-methods-and-internal-slots-hasproperty-p
description: >
If "has" trap is null or undefined, [[HasProperty]] call is properly
forwarded to [[ProxyTarget]] (which is also a Proxy object).
info: |
[[HasProperty]] ( P )
[...]
5. Let target be O.[[ProxyTarget]].
6. Let trap be ? GetMethod(handler, "has").
7. If trap is undefined, then
a. Return ? target.[[HasProperty]](P).
features: [Proxy, Symbol.replace, Reflect]
--- |
1069 |
trap-is-not-callable-realm.js |
---
esid: sec-proxy-object-internal-methods-and-internal-slots-hasproperty-p
description: >
Throws if trap is not callable (honoring the Realm of the current execution
context)
info: |
[[HasProperty]] (P)
...
6. Let trap be GetMethod(handler, "has").
...
7.3.9 GetMethod (O, P)
...
2. Let func be GetV(O, P).
5. If IsCallable(func) is false, throw a TypeError exception.
...
features: [cross-realm, Proxy]
--- |
779 |
trap-is-not-callable-using-with.js |
---
es6id: 9.5.7
description: >
Throws a TypeError exception if trap is not callable.
info: |
[[HasProperty]] (P)
...
6. Let trap be GetMethod(handler, "has").
...
7.3.9 GetMethod (O, P)
...
2. Let func be GetV(O, P).
5. If IsCallable(func) is false, throw a TypeError exception.
...
flags: [noStrict]
features: [Proxy]
--- |
680 |
trap-is-not-callable.js |
---
es6id: 9.5.7
description: >
Throws a TypeError exception if trap is not callable.
info: |
[[HasProperty]] (P)
...
6. Let trap be GetMethod(handler, "has").
...
7.3.9 GetMethod (O, P)
...
2. Let func be GetV(O, P).
5. If IsCallable(func) is false, throw a TypeError exception.
...
features: [Proxy]
--- |
649 |
trap-is-null-target-is-proxy.js |
---
esid: sec-proxy-object-internal-methods-and-internal-slots-hasproperty-p
description: >
If "has" trap is null or undefined, [[HasProperty]] call is properly
forwarded to [[ProxyTarget]] (which is also a Proxy object).
info: |
[[HasProperty]] ( P )
[...]
5. Let target be O.[[ProxyTarget]].
6. Let trap be ? GetMethod(handler, "has").
7. If trap is undefined, then
a. Return ? target.[[HasProperty]](P).
features: [Proxy, Symbol, Reflect, Array.prototype.includes]
--- |
1171 |
trap-is-undefined-target-is-proxy.js |
---
esid: sec-proxy-object-internal-methods-and-internal-slots-hasproperty-p
description: >
If "has" trap is null or undefined, [[HasProperty]] call is properly
forwarded to [[ProxyTarget]] (which is also a Proxy object).
info: |
[[HasProperty]] ( P )
[...]
5. Let target be O.[[ProxyTarget]].
6. Let trap be ? GetMethod(handler, "has").
7. If trap is undefined, then
a. Return ? target.[[HasProperty]](P).
features: [Proxy, Reflect]
--- |
1170 |
trap-is-undefined-using-with.js |
---
es6id: 9.5.7
description: >
Return target.[[HasProperty]](P) if trap is undefined.
info: |
[[HasProperty]] (P)
...
8. If trap is undefined, then
a. Return target.[[HasProperty]](P).
...
flags: [noStrict]
features: [Proxy]
--- |
590 |
trap-is-undefined.js |
---
es6id: 9.5.7
description: >
Return target.[[HasProperty]](P) if trap is undefined.
info: |
[[HasProperty]] (P)
...
8. If trap is undefined, then
a. Return target.[[HasProperty]](P).
...
features: [Proxy]
--- |
563 |