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

[Merged by Bors] - Add proxy handling in isArray method #1777

Closed
wants to merge 1 commit into from

Conversation

raskad
Copy link
Member

@raskad raskad commented Jan 12, 2022

It changes the following:

  • Add handling for proxy objects to the abstract is_array operation.
  • Implement the abstract is_array operation for JsValue and JsObject to avoid clones.
  • Fix some builtin function lengths.

@raskad raskad added bug Something isn't working builtins PRs and Issues related to builtins/intrinsics labels Jan 12, 2022
@raskad raskad added this to the v0.14.0 milestone Jan 12, 2022
@github-actions
Copy link

Test262 conformance changes

VM implementation

Test result main count PR count difference
Total 87,200 87,200 0
Passed 40,782 40,828 +46
Ignored 19,493 19,493 0
Failed 26,925 26,879 -46
Panics 0 0 0
Conformance 46.77% 46.82% +0.05%
Fixed tests (46):
test/built-ins/JSON/stringify/replacer-array-proxy-revoked-realm.js [strict mode] (previously Failed)
test/built-ins/JSON/stringify/replacer-array-proxy-revoked-realm.js (previously Failed)
test/built-ins/JSON/stringify/value-array-abrupt.js [strict mode] (previously Failed)
test/built-ins/JSON/stringify/value-array-abrupt.js (previously Failed)
test/built-ins/JSON/stringify/replacer-array-abrupt.js [strict mode] (previously Failed)
test/built-ins/JSON/stringify/replacer-array-abrupt.js (previously Failed)
test/built-ins/JSON/stringify/value-array-proxy.js [strict mode] (previously Failed)
test/built-ins/JSON/stringify/value-array-proxy.js (previously Failed)
test/built-ins/JSON/stringify/replacer-array-proxy-revoked.js [strict mode] (previously Failed)
test/built-ins/JSON/stringify/replacer-array-proxy-revoked.js (previously Failed)
test/built-ins/JSON/stringify/replacer-array-proxy.js [strict mode] (previously Failed)
test/built-ins/JSON/stringify/replacer-array-proxy.js (previously Failed)
test/built-ins/JSON/parse/reviver-array-length-get-err.js [strict mode] (previously Failed)
test/built-ins/JSON/parse/reviver-array-length-get-err.js (previously Failed)
test/built-ins/JSON/parse/reviver-array-length-coerce-err.js [strict mode] (previously Failed)
test/built-ins/JSON/parse/reviver-array-length-coerce-err.js (previously Failed)
test/built-ins/JSON/parse/revived-proxy.js [strict mode] (previously Failed)
test/built-ins/JSON/parse/revived-proxy.js (previously Failed)
test/built-ins/Array/isArray/proxy.js [strict mode] (previously Failed)
test/built-ins/Array/isArray/proxy.js (previously Failed)
test/built-ins/Array/isArray/proxy-revoked.js [strict mode] (previously Failed)
test/built-ins/Array/isArray/proxy-revoked.js (previously Failed)
test/built-ins/Array/prototype/filter/create-proxy.js [strict mode] (previously Failed)
test/built-ins/Array/prototype/filter/create-proxy.js (previously Failed)
test/built-ins/Array/prototype/slice/create-proxy.js [strict mode] (previously Failed)
test/built-ins/Array/prototype/slice/create-proxy.js (previously Failed)
test/built-ins/Array/prototype/concat/is-concat-spreadable-proxy.js [strict mode] (previously Failed)
test/built-ins/Array/prototype/concat/is-concat-spreadable-proxy.js (previously Failed)
test/built-ins/Array/prototype/concat/arg-length-exceeding-integer-limit.js [strict mode] (previously Failed)
test/built-ins/Array/prototype/concat/arg-length-exceeding-integer-limit.js (previously Failed)
test/built-ins/Array/prototype/concat/is-concat-spreadable-is-array-proxy-revoked.js [strict mode] (previously Failed)
test/built-ins/Array/prototype/concat/is-concat-spreadable-is-array-proxy-revoked.js (previously Failed)
test/built-ins/Array/prototype/concat/create-proxy.js [strict mode] (previously Failed)
test/built-ins/Array/prototype/concat/create-proxy.js (previously Failed)
test/built-ins/Array/prototype/map/create-proxy.js [strict mode] (previously Failed)
test/built-ins/Array/prototype/map/create-proxy.js (previously Failed)
test/built-ins/Array/prototype/splice/create-proxy.js [strict mode] (previously Failed)
test/built-ins/Array/prototype/splice/create-proxy.js (previously Failed)
test/built-ins/Object/prototype/propertyIsEnumerable/S15.2.4.7_A11.js [strict mode] (previously Failed)
test/built-ins/Object/prototype/propertyIsEnumerable/S15.2.4.7_A11.js (previously Failed)
test/built-ins/Object/prototype/toString/proxy-array.js [strict mode] (previously Failed)
test/built-ins/Object/prototype/toString/proxy-array.js (previously Failed)
test/built-ins/Object/prototype/toString/proxy-revoked-during-get-call.js [strict mode] (previously Failed)
test/built-ins/Object/prototype/toString/proxy-revoked-during-get-call.js (previously Failed)
test/built-ins/Object/prototype/isPrototypeOf/length.js [strict mode] (previously Failed)
test/built-ins/Object/prototype/isPrototypeOf/length.js (previously Failed)

@codecov
Copy link

codecov bot commented Jan 12, 2022

Codecov Report

Merging #1777 (73c9a17) into main (2300d87) will increase coverage by 0.01%.
The diff coverage is 90.00%.

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #1777      +/-   ##
==========================================
+ Coverage   56.21%   56.23%   +0.01%     
==========================================
  Files         200      200              
  Lines       17074    17081       +7     
==========================================
+ Hits         9599     9605       +6     
- Misses       7475     7476       +1     
Impacted Files Coverage Δ
boa/src/object/operations.rs 62.19% <75.00%> (+0.65%) ⬆️
boa/src/builtins/array/mod.rs 77.84% <100.00%> (+0.08%) ⬆️
boa/src/builtins/json/mod.rs 83.16% <100.00%> (ø)
boa/src/builtins/object/mod.rs 65.73% <100.00%> (+0.13%) ⬆️
boa/src/value/mod.rs 57.83% <100.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 2300d87...73c9a17. Read the comment docs.

Copy link
Member

@RageKnify RageKnify left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

bors r+

bors bot pushed a commit that referenced this pull request Jan 13, 2022
It changes the following:

- Add handling for proxy objects to the abstract `is_array` operation.
- Implement the abstract `is_array` operation for `JsValue` and `JsObject` to avoid clones.
- Fix some builtin function lengths.
@bors
Copy link

bors bot commented Jan 13, 2022

Pull request successfully merged into main.

Build succeeded:

@bors bors bot changed the title Add proxy handling in isArray method [Merged by Bors] - Add proxy handling in isArray method Jan 13, 2022
@bors bors bot closed this Jan 13, 2022
@bors bors bot deleted the fix-is-array branch January 13, 2022 20:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working builtins PRs and Issues related to builtins/intrinsics
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants