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

Fix DataDescriptor Value to possibly be empty #1419

Merged
merged 2 commits into from
Jul 22, 2021

Conversation

raskad
Copy link
Member

@raskad raskad commented Jul 21, 2021

This Pull Request fixes/closes #1418.

It changes the following:

Changes DataDescriptor.value to be an Option<Value> instead of Value. This allows to express that a call to Object.defineProperties or Object.defineProperty may not contain a value.

@HalidOdat HalidOdat self-requested a review July 22, 2021 10:23
@HalidOdat
Copy link
Member

Looks good I'll try to review it ASAP

Test result master count PR count difference
Total 78,897 78,897 0
Passed 27,954 28,011 +57
Ignored 15,616 15,616 0
Failed 35,327 35,270 -57
Panics 0 0 0
Conformance 35.43% 35.50% +0.07%
Fixed tests:
test/built-ins/Array/length/define-own-prop-length-coercion-order.js [strict mode] (previously Failed)
test/built-ins/Array/length/define-own-prop-length-coercion-order.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-269.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-269.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-159.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-159.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-115.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-115.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-183.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-183.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-120.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-120.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-64.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-64.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-359.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-359.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-358.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-358.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-119.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-119.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-329.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-329.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-344.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-344.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-357.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-357.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-264.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-264.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-345.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-345.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-124.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-124.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-372.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-372.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-280.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-280.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-331.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-331.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-343.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-343.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-163.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-163.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-330.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-330.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-371.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-371.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-187.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-187.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-350.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-350.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-373.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-373.js (previously Failed)
test/built-ins/Map/prototype/set/append-new-values-normalizes-zero-key.js [strict mode] (previously Failed)
test/language/arguments-object/mapped/mapped-arguments-nonconfigurable-1.js (previously Failed)
test/language/arguments-object/mapped/mapped-arguments-nonconfigurable-delete-1.js (previously Failed)
test/language/arguments-object/mapped/mapped-arguments-nonconfigurable-nonwritable-1.js (previously Failed)
test/language/arguments-object/mapped/nonconfigurable-nonenumerable-nonwritable-descriptors-basic.js (previously Failed)

@HalidOdat HalidOdat added bug Something isn't working builtins PRs and Issues related to builtins/intrinsics technical debt labels Jul 22, 2021
@HalidOdat HalidOdat added this to the v0.13.0 milestone Jul 22, 2021
boa/src/property/mod.rs Outdated Show resolved Hide resolved
@raskad raskad requested a review from HalidOdat July 22, 2021 17:58
@HalidOdat
Copy link
Member

Test result master count PR count difference
Total 78,897 78,897 0
Passed 27,984 28,040 +56
Ignored 15,616 15,616 0
Failed 35,297 35,241 -56
Panics 0 0 0
Conformance 35.47% 35.54% +0.07%
Fixed tests:
test/built-ins/Array/length/define-own-prop-length-coercion-order.js [strict mode] (previously Failed)
test/built-ins/Array/length/define-own-prop-length-coercion-order.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-269.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-269.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-159.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-159.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-115.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-115.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-183.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-183.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-120.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-120.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-64.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-64.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-359.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-359.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-358.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-358.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-119.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-119.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-329.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-329.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-344.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-344.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-357.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-357.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-264.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-264.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-345.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-345.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-124.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-124.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-372.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-372.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-280.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-280.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-331.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-331.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-343.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-343.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-163.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-163.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-330.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-330.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-371.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-371.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-187.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-187.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-350.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-350.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-373.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-373.js (previously Failed)
test/language/arguments-object/mapped/mapped-arguments-nonconfigurable-1.js (previously Failed)
test/language/arguments-object/mapped/mapped-arguments-nonconfigurable-delete-1.js (previously Failed)
test/language/arguments-object/mapped/mapped-arguments-nonconfigurable-nonwritable-1.js (previously Failed)
test/language/arguments-object/mapped/nonconfigurable-nonenumerable-nonwritable-descriptors-basic.js (previously Failed)

@HalidOdat HalidOdat merged commit 65473b5 into boa-dev:master Jul 22, 2021
@raskad raskad deleted the empty-datadescriptor branch August 14, 2021 00:34
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 technical debt
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Object.defineProperties and Object.defineProperty overwrite existing values
2 participants