Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proxy and Reflect implementation #1637

Open
wants to merge 10 commits into
base: master
Choose a base branch
from

Conversation

rbri
Copy link
Collaborator

@rbri rbri commented Sep 20, 2024

Next try on the long story.... see #268

This is the follow up of #1431.

@p-bakker
Copy link
Collaborator

Not possible to continue with the previous PR? This way we may lose the (unresolved) comments

@rbri rbri marked this pull request as draft September 21, 2024 09:50
@rbri rbri marked this pull request as ready for review September 21, 2024 18:10
@rbri rbri force-pushed the Proxy_and_Reflect branch 2 times, most recently from 1e1aa7b to b5cf850 Compare September 22, 2024 12:03
@rbri
Copy link
Collaborator Author

rbri commented Sep 22, 2024

As promised i have recreated the Proxy/Reflect stuff based on the current status of the impl.
There are still a bunch of failing test but i can't move forward without breaking backward compatibility - already discussed at other places.

From my point of view this is already in a state that can be merged - i will not really work on this because i have some other priorities. Will try to rebase from time to time....

Status

head Proxy & Reflect
built-ins/Array 383/3074 (12.46%) 365/3074 (11.87%)
built-ins/ArrayBuffer 142/191 (74.35%) 140/191 (73.3%)
built-ins/BigInt 21/75 (28.0%) 20/75 (26.67%)
built-ins/Boolean 4/51 (7.84%) 3/51 (5.88%)
built-ins/DataView 254/550 (46.18%) 250/550 (45.45%)
built-ins/Date 90/770 (11.69%) 87/770 (11.3%)
built-ins/Error 6/41 (14.63%) 5/41 (12.2%)
built-ins/Function 186/508 (36.61%) 184/508 (36.22%)
built-ins/JSON 37/144 (25.69%) 26/144 (18.06%)
built-ins/Map 13/171 (7.6%) 12/171 (7.02%)
built-ins/Math 51/327 (15.6%) 16/327 (4.89%)
built-ins/NativeErrors 31/123 (25.2%) 23/123 (18.7%)
built-ins/Number 24/335 (7.16%) 23/335 (6.87%)
built-ins/Object 222/3408 (6.51%) 189/3408 (5.55%)
built-ins/Promise 406/631 (64.34%) 392/631 (62.12%)
built-ins/Proxy 79/311 (25.4%)
built-ins/Reflect 13/153 (8.5%)
built-ins/RegExp 1169/1854 (63.05%) 1168/1854 (63.0%)
built-ins/Set 167/381 (43.83%) 166/381 (43.57%)
built-ins/String 140/1182 (11.84%) 127/1182 (10.74%)
built-ins/Symbol 36/94 (38.3%) 35/94 (37.23%)
built-ins/TypedArray 1091/1422 (76.72%) 1084/1422 (76.23%)
built-ins/TypedArrayConstructors 597/735 (81.22%) 566/735 (77.01%)
built-ins/WeakMap 15/102 (14.71%) 14/102 (13.73%)
built-ins/WeakSet 12/85 (14.12%) 11/85 (12.94%)
language/expressions/typeof 2/16 (12.5%) 0/16 (0.0%)
language/statements/for-of 453/741 (61.13%) 452/741 (61.0%)

@p-bakker
Copy link
Collaborator

There are still a bunch of failing test but i can't move forward without breaking backward compatibility - already discussed at other places.

Could you elaborate on which breaking changes are needed to make Proxy more spec-compliant? From looking at all comment on this and the two preceding PRs, I gathered the following:

Included breaking change: defineProperty now returns boolean instead of void
Excluded breaking change: changing Scriptable.delete to return boolean

Are there more changes that ought to be made, but that you held off on as they would constitute a breaking change?

Also, some of my previous comments remain unanswered. Any chance you can have a look at them?

And wrt to whether this is mergeable in its current state or not: I worry that there are details of the spec that haven't been implemented yet and that do not relate to requiring breaking changes, for example (some completely random checks on currently failing tests):

Not trying to be pedantic about this, I really wanna see Proxy support merged (heck, I opened the issue about it 8 and a half years ago :-) ), am just worried about A: merging something that isn't as spec compliant as it can be, meaning we'll have to make (potentially) breaking changes later and B: that if we don't take care of the details now, we'll never get to tme

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants