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

Implement legacy Object.prototype properties #2067

Closed
5 tasks done
raskad opened this issue May 9, 2022 · 0 comments
Closed
5 tasks done

Implement legacy Object.prototype properties #2067

raskad opened this issue May 9, 2022 · 0 comments
Labels
builtins PRs and Issues related to builtins/intrinsics E-Easy Easy enhancement New feature or request good first issue Good for newcomers

Comments

@raskad
Copy link
Member

raskad commented May 9, 2022

The following Object.prototype properties are marked as optional and legacy in the spec but we should implement them to pass the corresponding 262 tests.

@raskad raskad added enhancement New feature or request good first issue Good for newcomers E-Easy Easy builtins PRs and Issues related to builtins/intrinsics labels May 9, 2022
bors bot pushed a commit that referenced this issue Jun 11, 2022
This Pull Request fixes part of #2067.

It introduces the legacy `Object.prototype.__defineGetter__` function.
bors bot pushed a commit that referenced this issue Jun 11, 2022
<!---
Thank you for contributing to Boa! Please fill out the template below, and remove or add any
information as you feel neccesary.
--->

This Pull Request fixes part of #2067.

It adds the legacy `Object.prototype.__defineSetter__` function.
Sorck pushed a commit to Sorck/boa that referenced this issue Jun 11, 2022
Signed-off-by: James Robson <james@sorck.net>
Sorck pushed a commit to Sorck/boa that referenced this issue Jun 11, 2022
bors bot pushed a commit that referenced this issue Jun 11, 2022
This Pull Request fixes part of #2067.

It changes the following:

- implemented getter of `Object.prototype.__proto__`
- implemented setter of `Object.prototype.__proto__`

I've tried to run tests with `test262/test/built-ins/Object/prototype/__proto__/` and all tests under that directory are pass now 🙏 

<details>

<summary>Toggle to see __proto__ test status</summary>

```
   Compiling boa_engine v0.15.0 (/codespace/rust/boa/boa_engine)
   Compiling boa_tester v0.15.0 (/codespace/rust/boa/boa_tester)
    Finished release [optimized] target(s) in 2m 57s
     Running `target/release/boa_tester run -vv -d -s /codespace/rust/boa/test262/test/built-ins/Object/prototype/__proto__/`
Loading the test suite...
Test suite loaded, starting tests...
Suite __proto__:
`get-fn-name` (strict mode): starting
`get-fn-name` (strict mode): Passed
`get-fn-name`: starting
`get-fn-name`: Passed
`set-cycle-shadowed` (strict mode): starting
`set-cycle-shadowed` (strict mode): Passed
`set-cycle-shadowed`: starting
`set-cycle-shadowed`: Passed
`set-abrupt` (strict mode): starting
`set-abrupt` (strict mode): Passed
`set-abrupt`: starting
`set-abrupt`: Passed
`get-to-obj-abrupt` (strict mode): starting
`get-to-obj-abrupt` (strict mode): Passed
`get-to-obj-abrupt`: starting
`get-to-obj-abrupt`: Passed
`set-fn-name` (strict mode): starting
`set-fn-name` (strict mode): Passed
`set-fn-name`: starting
`set-fn-name`: Passed
`get-ordinary-obj` (strict mode): starting
`get-ordinary-obj` (strict mode): Passed
`get-ordinary-obj`: starting
`get-ordinary-obj`: Passed
`set-non-object` (strict mode): starting
`set-non-object` (strict mode): Passed
`set-non-object`: starting
`set-non-object`: Passed
`set-invalid-value` (strict mode): starting
`set-invalid-value` (strict mode): Passed
`set-invalid-value`: starting
`set-invalid-value`: Passed
`set-immutable` (strict mode): starting
`set-immutable` (strict mode): Passed
`set-immutable`: starting
`set-immutable`: Passed
`set-non-obj-coercible` (strict mode): starting
`set-non-obj-coercible` (strict mode): Passed
`set-non-obj-coercible`: starting
`set-non-obj-coercible`: Passed
`set-cycle` (strict mode): starting
`set-cycle` (strict mode): Passed
`set-cycle`: starting
`set-cycle`: Passed
`prop-desc` (strict mode): starting
`prop-desc` (strict mode): Passed
`prop-desc`: starting
`prop-desc`: Passed
`get-abrupt` (strict mode): starting
`get-abrupt` (strict mode): Passed
`get-abrupt`: starting
`get-abrupt`: Passed
`set-ordinary-obj` (strict mode): starting
`set-ordinary-obj` (strict mode): Passed
`set-ordinary-obj`: starting
`set-ordinary-obj`: Passed
`set-non-extensible` (strict mode): starting
`set-non-extensible` (strict mode): Passed
`set-non-extensible`: starting
`set-non-extensible`: Passed

Suite __proto__ results: total: 30, passed: 30, ignored: 0, failed: 0 (panics: 0), conformance: 100.00%

Results:
Total tests: 30
Passed tests: 30
Ignored tests: 0
Failed tests: 0 (panics: 0)
Conformance: 100.00%
```

</details>
bors bot pushed a commit that referenced this issue Jun 11, 2022
This Pull Request fixes part of #2067

It changes the following:

- Implement `Object.prototype.__lookupGetter__`

This passes all tests from `./test262/test/built-ins/Object/prototype/__lookupGetter__/`

```
Loading the test suite...
Test suite loaded, starting tests...
Suite __lookupGetter__:
`lookup-own-get-err` (strict mode): starting
`lookup-own-get-err` (strict mode): Passed
`lookup-own-get-err`: starting
`lookup-own-get-err`: Passed
`length` (strict mode): starting
`length` (strict mode): Passed
`length`: starting
`length`: Passed
`lookup-proto-proto-err` (strict mode): starting
`lookup-proto-proto-err` (strict mode): Passed
`lookup-proto-proto-err`: starting
`lookup-proto-proto-err`: Passed
`lookup-not-found` (strict mode): starting
`lookup-not-found` (strict mode): Passed
`lookup-not-found`: starting
`lookup-not-found`: Passed
`lookup-own-acsr-wo-getter` (strict mode): starting
`lookup-own-acsr-wo-getter` (strict mode): Passed
`lookup-own-acsr-wo-getter`: starting
`lookup-own-acsr-wo-getter`: Passed
`name` (strict mode): starting
`name` (strict mode): Passed
`name`: starting
`name`: Passed
`lookup-own-acsr-w-getter` (strict mode): starting
`lookup-own-acsr-w-getter` (strict mode): Passed
`lookup-own-acsr-w-getter`: starting
`lookup-own-acsr-w-getter`: Passed
`lookup-own-proto-err` (strict mode): starting
`lookup-own-proto-err` (strict mode): Passed
`lookup-own-proto-err`: starting
`lookup-own-proto-err`: Passed
`lookup-proto-data` (strict mode): starting
`lookup-proto-data` (strict mode): Passed
`lookup-proto-data`: starting
`lookup-proto-data`: Passed
`lookup-proto-acsr-w-getter` (strict mode): starting
`lookup-proto-acsr-w-getter` (strict mode): Passed
`lookup-proto-acsr-w-getter`: starting
`lookup-proto-acsr-w-getter`: Passed
`lookup-own-data` (strict mode): starting
`lookup-own-data` (strict mode): Passed
`lookup-own-data`: starting
`lookup-own-data`: Passed
`lookup-proto-acsr-wo-getter` (strict mode): starting
`lookup-proto-acsr-wo-getter` (strict mode): Passed
`lookup-proto-acsr-wo-getter`: starting
`lookup-proto-acsr-wo-getter`: Passed
`lookup-proto-get-err` (strict mode): starting
`lookup-proto-get-err` (strict mode): Passed
`lookup-proto-get-err`: starting
`lookup-proto-get-err`: Passed
`prop-desc` (strict mode): starting
`prop-desc` (strict mode): Passed
`prop-desc`: starting
`prop-desc`: Passed
`key-invalid` (strict mode): starting
`key-invalid` (strict mode): Passed
`key-invalid`: starting
`key-invalid`: Passed
`this-non-obj` (strict mode): starting
`this-non-obj` (strict mode): Passed
`this-non-obj`: starting
`this-non-obj`: Passed

Suite __lookupGetter__ results: total: 32, passed: 32, ignored: 0, failed: 0 (panics: 0), conformance: 100.00%

Results:
Total tests: 32
Passed tests: 32
Ignored tests: 0
Failed tests: 0 (panics: 0)
Conformance: 100.00%
```
Sorck pushed a commit to Sorck/boa that referenced this issue Jun 11, 2022
@bors bors bot closed this as completed in 6477f61 Jun 11, 2022
otravidaahora2t added a commit to otravidaahora2t/boa that referenced this issue Aug 2, 2024
<!---
Thank you for contributing to Boa! Please fill out the template below, and remove or add any
information as you feel neccesary.
--->

This Pull Request fixes part of boa-dev/boa#2067.

It adds the legacy `Object.prototype.__defineSetter__` function.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
builtins PRs and Issues related to builtins/intrinsics E-Easy Easy enhancement New feature or request good first issue Good for newcomers
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant