Closed IgnoredAmbience closed 6 years ago
See also tc39/ecma262#1030
As of 3fe79d4 all Proxy tests are passing or skipped due to not implemented features. This set of features needs to be checked and refined.
Most obvious next step will be to implement the Reflect
standard library.
Missing features that cause skips:
Correction: 1 failure due to a Coq_result_impossible
:fearful:
As of 052a662 all Proxy tests are passing, except for ones skipped due to unimplemented features:
Object.create
[[Construct]]
where O
and newTarget
differ (due to classes)new.target
Reflect has now been implemented and fully tested as working.
A few tests that use new.target
will not be skipped until tc39/test262#1648 lands and we update the test262 submodule.
I think we should merge this to master.
Remaining incomplete features (property enumeration order) are now tracked in #28.
Checklist of items todo:
OrdinaryHasProperty(O,P)
Type(handler)
~ special-cased due to type safety of OCaml (and implemented)IsCallable(argument)
IsConstructable(argument)
GetMethod(handler, "getPrototypeOf")
Call(trap, handler, <<target>>)
Construct(...)
IsExtensible(target)
SameValue(x, y)
SameValueNonNumber(x, y)
ToBoolean(x)
Get(O,P)
HasProperty(O,P)
ToPropertyDescriptor(x)
CompletePropertyDescriptor(x)
IsCompatiblePropertyDescriptor(x, y, z)
ValidateAndApplyPropertyDescriptor(O,P,x,y,z)
OrdinaryDefineOwnProperty(O, P, Desc)
OrdinaryGetOwnProperty(O, P)
FromPropertyDescriptor(x)
IsPropertyKey(P)
IsDataDescriptor(D)
IsAccessorDescriptor(D)
CreateListFromArrayLike(A, <<String, Symbol>>)
CreateArrayFromList(L)
OrdinarySet(O,P,V,Receiver)
CreateDataProperty(O,P,V)
PutValue(V,W)
Set(O,P,V,Throw)
OrdinaryGet(O,P,Receiver)
[[GetPrototypeOf]]
[[SetPrototypeOf]]
[[IsExtensible]]
[[PreventExtensions]]
[[GetOwnProperty]]
[[DefineOwnProperty]]
[[HasProperty]]
[[Get]]
[[Set]]
[[Delete]]
[[OwnPropertyKeys]]
[[Call]]
[[Construct]]
[[GetOwnProperty]]
[[DefineOwnProperty]]
[[HasProperty]]
[[Get]]
[[Delete]]
[[GetPrototypeOf]]
(new accessor to[[Prototype]]
internal property)[[SetPrototypeOf]]
(new accessor to[[Prototype]]
internal property)[[IsExtensible]]
(new accessor to[[Extensible]]
internal property)[[PreventExtensions]]
(new accessor to[[Extensible]]
internal property)[[Set]]
(renamed from[[Put]]
??)[[OwnPropertyKeys]]
(implemented, but using stubbedOrdinaryOwnPropertyKeys
)[[GetPrototypeOf]]
[[SetPrototypeOf]]
[[IsExtensible]]
[[PreventExtensions]]
[[GetOwnProperty]]
[[DefineOwnProperty]]
[[HasProperty]]
[[Get]]
[[Set]]
[[Delete]]
[[OwnPropertyKeys]]
[[Call]]
[[Construct]]
[[GetPrototypeOf]]
[[HasInstance]]
[[SetPrototypeOf]]
[[IsExtensible]]
[[PreventExtensions]]
[[GetOwnProperty]]
[[DefineOwnProperty]]
[[HasProperty]]
[[Get]]
[[Set]]
[[Delete]]
[[OwnPropertyKeys]]
[[Call]]
[[Construct]]
===
as a higher-order function_compare_*
functions[[GetOwnProperty]]
(ordinary objects)[[DefineOwnProperty]]
(ordinary objects)