Skip to content

Commit

Permalink
fix: object rest transformation
Browse files Browse the repository at this point in the history
  • Loading branch information
kermanx committed Mar 3, 2025
1 parent b48cec5 commit c487d58
Show file tree
Hide file tree
Showing 9 changed files with 22 additions and 28 deletions.
14 changes: 7 additions & 7 deletions crates/tree_shaker/src/entity/object/delete.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ use crate::{
analyzer::Analyzer,
consumable::Consumable,
entity::{consumed_object, Entity, EntityTrait, LiteralEntity},
mangling::MangleConstraint,
mangling::{MangleConstraint, ManglingDep},
};

impl<'a> ObjectEntity<'a> {
Expand Down Expand Up @@ -54,12 +54,12 @@ impl<'a> ObjectEntity<'a> {
let prev_atom = property.mangling.unwrap();
analyzer.consumable((
dep,
// This is a hack
analyzer.factory.mangable(
analyzer.factory.immutable_unknown,
(prev_key, key),
analyzer.factory.alloc(MangleConstraint::Eq(prev_atom, key_atom.unwrap())),
) as Entity<'a>,
ManglingDep {
deps: (prev_key, key),
constraint: analyzer
.factory
.alloc(MangleConstraint::Eq(prev_atom, key_atom.unwrap())),
},
))
} else {
dep
Expand Down
2 changes: 1 addition & 1 deletion crates/tree_shaker/src/mangling/mangler.rs
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ impl<'a> Mangler<'a> {
self.resolve_identity_group(*identity_group)
} else if uniqueness_groups.is_empty() {
// This is quite weird, isn't it?
"a"
"_"
} else {
let mut n =
uniqueness_groups.iter().map(|&index| self.uniqueness_groups[index].1).max().unwrap();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -114,9 +114,7 @@ impl<'a> Transformer<'a> {

let mut transformed_properties = self.ast_builder.vec();
for property in properties {
if let Some(property) =
self.transform_assignment_target_property(property, rest.is_some())
{
if let Some(property) = self.transform_assignment_target_property(property) {
transformed_properties.push(property);
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
use crate::{
analyzer::Analyzer, ast::AstKind2, dep::DepId, entity::Entity, transformer::Transformer,
};
use crate::{analyzer::Analyzer, ast::AstKind2, entity::Entity, transformer::Transformer};
use oxc::{
ast::ast::{
AssignmentTargetProperty, AssignmentTargetPropertyIdentifier, AssignmentTargetPropertyProperty,
Expand All @@ -20,7 +18,7 @@ impl<'a> Analyzer<'a> {
node: &'a AssignmentTargetProperty<'a>,
value: Entity<'a>,
) -> Entity<'a> {
let dep = self.consumable(DepId::from(AstKind2::AssignmentTargetProperty(node)));
let dep = self.consumable(AstKind2::AssignmentTargetProperty(node));
match node {
AssignmentTargetProperty::AssignmentTargetPropertyIdentifier(node) => {
let key = self.factory.string(node.binding.name.as_str());
Expand Down Expand Up @@ -58,9 +56,8 @@ impl<'a> Transformer<'a> {
pub fn transform_assignment_target_property(
&self,
node: &'a AssignmentTargetProperty<'a>,
has_rest: bool,
) -> Option<AssignmentTargetProperty<'a>> {
let need_binding = has_rest || self.is_referred(AstKind2::AssignmentTargetProperty(node));
let need_binding = self.is_referred(AstKind2::AssignmentTargetProperty(node));
match node {
AssignmentTargetProperty::AssignmentTargetPropertyIdentifier(node) => {
let data =
Expand Down
2 changes: 1 addition & 1 deletion crates/tree_shaker/src/nodes/misc/binding_pattern.rs
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ impl<'a> Transformer<'a> {
let mut transformed_properties = self.ast_builder.vec();
for property in properties {
let dep = AstKind2::BindingProperty(property);
let need_property = rest.is_some() || self.is_referred(dep);
let need_property = self.is_referred(dep);

let BindingProperty { span, key, value, shorthand, computed } = property;

Expand Down
1 change: 0 additions & 1 deletion crates/tree_shaker/src/nodes/misc/rest.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ impl<'a> Analyzer<'a> {
for key in enumerated {
rest.delete_property(self, self.factory.empty_consumable, key);
}

rest
}
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 comment on commit c487d58

@github-actions
Copy link

Choose a reason for hiding this comment

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

Test262 Result

  • Failed: 404
  • Total: 43706
  • Passed: 38793
  • Ignored: 2143
  • Treeshaked: 28547, Skipped: 15159
  • Treeshaked sized/Minified size = 85.21%

Failed Tests

language/function-code/10.4.3-1-60-s.js: Expected no error, got TypeError: 0 is not an object
language/function-code/10.4.3-1-61-s.js: Expected no error, got TypeError: 0 is not an object
language/line-terminators/7.3-15.js: prop.length Expected SameValue(«5», «3») to be true
language/line-terminators/7.3-5.js: { message: 'prop[2] Expected SameValue(«undefined», «\"
language/line-terminators/7.3-6.js: { message: 'prop[2] Expected SameValue(«undefined», «\"
language/module-code/instn-local-bndng-export-const.js: Binding is created but not initialized. Expected a ReferenceError to be thrown but no exception was thrown at all
language/module-code/instn-local-bndng-const.js: { message: 'Binding is created but not initialized. Expected a ReferenceError to be thrown but no exception was thrown at all' }
language/module-code/instn-local-bndng-cls.js: { message: 'Binding is created but not initialized. Expected a ReferenceError to be thrown but no exception was thrown at all' }
language/module-code/instn-local-bndng-export-cls.js: Binding is created but not initialized. Expected a ReferenceError to be thrown but no exception was thrown at all
language/module-code/instn-local-bndng-export-let.js: Binding is created but not initialized. Expected a ReferenceError to be thrown but no exception was thrown at all
language/module-code/instn-local-bndng-let.js: Binding is created but not initialized. Expected a ReferenceError to be thrown but no exception was thrown at all
language/source-text/6.1.js: A character outside the BMP (Unicode CodePoint > 0xFFFF) should consume two code units
language/expressions/array/S11.1.4_A2.js: { message: '#5: var array = [[1,2], [3], []]; var subarray = array[0]; typeof subarray === \"object\". Actual: object' }
language/expressions/assignment/fn-name-cover.js: { message: 'Expected true but got false' }
language/expressions/async-generator/default-proto.js: { message: 'fn.prototype is undefined Expected SameValue(«[object AsyncGenerator]», «[object AsyncGenerator]») to be true' }
language/expressions/await/await-non-promise.js: Test262Error: Actual [Await: 1, Promise: 1] and expected [Await: 1, Promise: 1, Promise: 2] should have the same contents. Async/await and promises should be interleaved
language/expressions/coalesce/short-circuit-number-symbol.js: s ?? null ?? undefined Expected SameValue(«undefined», «Symbol()») to be true
language/expressions/delete/11.4.1-4-a-3-s.js: Expected no error, got TypeError: 0 is not an object
language/expressions/delete/11.4.1-4-a-4-s.js: Expected no error, got TypeError: 0 is not an object
language/expressions/delete/11.4.1-4.a-1.js: Expected no error, got TypeError: 0 is not an object
language/expressions/delete/11.4.1-4.a-2.js: Expected no error, got TypeError: 0 is not an object
language/expressions/delete/super-property-topropertykey.js: Expected a ReferenceError but got a Test262Error
language/expressions/instanceof/symbol-hasinstance-to-boolean.js: Expected SameValue(«false», «true») to be true
language/expressions/object/fn-name-cover.js: Expected true but got false
language/expressions/super/prop-dot-cls-ref-strict.js: Expected SameValue(«\"undefined\"», «\"object\"») to be true
language/expressions/super/prop-dot-obj-ref-strict.js: Expected SameValue(«\"undefined\"», «\"object\"») to be true
language/expressions/super/prop-expr-cls-ref-strict.js: Expected SameValue(«\"undefined\"», «\"object\"») to be true
language/expressions/super/prop-expr-getsuperbase-before-topropertykey-putvalue-compound-assign.js: { message: 'Expected SameValue(«0», «2») to be true' }
language/expressions/super/prop-expr-obj-ref-strict.js: Expected SameValue(«\"undefined\"», «\"object\"») to be true
language/expressions/yield/star-iterable.js: { message: 'Third result 'value' Expected SameValue(«1», «8») to be true' }
language/module-code/top-level-await/module-async-import-async-resolution-ticks.js: { message: 'Expected SameValue(«\"synchronous evaluation\"», «\"tick in the async evaluation\"») to be true' }
language/module-code/top-level-await/top-level-ticks.js: Test262Error: Actual [await 1, await 2, await 3, await 4, tick 1, tick 2, tick 3, tick 4] and expected [tick 1, await 1, tick 2, await 2, tick 3, await 3, tick 4, await 4] should have the same contents. Ticks for top level await and promises
language/module-code/top-level-await/while-dynamic-evaluation.js: Test timed out
language/statements/class/scope-name-lex-close.js: from instance method Expected SameValue(«null», «class C{method(){return null}}») to be true
language/statements/class/scope-name-lex-open-heritage.js: inner binding is independent Expected SameValue(«null», «class C extends (probeHeritage=function(){return C},setHeritage=function(){C=null}){method(){return C}}») to be true
language/statements/class/static-init-super-property.js: { message: 'Expected SameValue(«undefined», «\"test262\"») to be true' }
language/statements/class/static-method-gen-non-configurable-err.js: { message: 'Expected a TypeError to be thrown but no exception was thrown at all' }
language/statements/class/static-method-non-configurable-err.js: { message: 'Expected a TypeError to be thrown but no exception was thrown at all' }
language/statements/const/fn-name-cover.js: { message: 'Expected true but got false' }
language/statements/for/S12.6.3_A3.js: { message: '#2: (__in__NotInExpression__ === \"checked\")&(__in__NotInExpression__2===\"passed\")' }
language/statements/for/scope-body-lex-open.js: { message: 'Expected SameValue(«undefined», «\"outside\"») to be true' }
language/statements/for/scope-head-lex-close.js: Test timed out
language/statements/for/scope-body-lex-boundary.js: Test timed out
language/statements/for-in/S12.6.4_A14_T2.js: Expected no error, got ReferenceError: '__reached' is not defined
language/statements/for-in/head-const-bound-names-fordecl-tdz.js: Expected a ReferenceError to be thrown but no exception was thrown at all
language/statements/for-in/head-let-bound-names-fordecl-tdz.js: Expected a ReferenceError to be thrown but no exception was thrown at all
language/statements/for-in/order-after-define-property.js: Actual [b] and expected [a, b] should have the same contents.
language/statements/for-in/order-simple-object.js: Actual [0, 1, 2, p2, p4] and expected [0, 1, 2, p2, p4, p1] should have the same contents.
language/statements/for-in/scope-body-lex-close.js: Expected no error, got TypeError: undefined is not a function
language/statements/for-in/scope-body-lex-open.js: Expected a ReferenceError to be thrown but no exception was thrown at all
language/statements/for-in/scope-body-var-none.js: reference preceding statement Expected SameValue(«1», «2») to be true
language/statements/for-in/scope-head-lex-close.js: { message: 'Expected a ReferenceError to be thrown but no exception was thrown at all' }
language/statements/for-in/scope-head-lex-open.js: Expected a ReferenceError to be thrown but no exception was thrown at all
language/statements/for-of/head-const-bound-names-fordecl-tdz.js: Expected a ReferenceError to be thrown but no exception was thrown at all
language/statements/for-of/head-expr-obj-iterator-method.js: Expected a TypeError to be thrown but no exception was thrown at all
language/statements/for-of/head-expr-primitive-iterator-method.js: { message: 'Expected a TypeError to be thrown but no exception was thrown at all' }
language/statements/for-of/head-expr-to-obj.js: { message: 'Expected a TypeError to be thrown but no exception was thrown at all' }
language/statements/for-of/head-let-bound-names-fordecl-tdz.js: Expected a ReferenceError to be thrown but no exception was thrown at all
language/statements/function/13.2-2-s.js: Expected a TypeError to be thrown but no exception was thrown at all
language/statements/function/13.2-4-s.js: Expected a TypeError to be thrown but no exception was thrown at all
language/statements/let/block-local-closure-set-before-initialization.js: { message: 'Expected a ReferenceError to be thrown but no exception was thrown at all' }
language/statements/let/fn-name-cover.js: Expected true but got false
language/statements/let/function-local-closure-set-before-initialization.js: Expected a ReferenceError to be thrown but no exception was thrown at all
language/statements/let/global-closure-set-before-initialization.js: Expected a ReferenceError to be thrown but no exception was thrown at all
language/statements/variable/fn-name-cover.js: { message: 'Expected true but got false' }
language/types/number/S8.5_A14_T1.js: #1: 1e+308*2 === Infinity. Actual: Infinity
language/expressions/arrow-function/dstr/dflt-obj-ptrn-id-get-value-err.js: Expected a Test262Error to be thrown but no exception was thrown at all
language/expressions/arrow-function/dstr/dflt-obj-ptrn-rest-skip-non-enumerable.js: Expected SameValue(«4», «undefined») to be true
language/expressions/arrow-function/dstr/obj-ptrn-id-get-value-err.js: Expected a Test262Error to be thrown but no exception was thrown at all
language/expressions/arrow-function/dstr/obj-ptrn-rest-skip-non-enumerable.js: Expected SameValue(«4», «undefined») to be true
language/expressions/assignment/dstr/array-elem-put-let.js: Expected a ReferenceError to be thrown but no exception was thrown at all
language/expressions/assignment/dstr/array-rest-put-let.js: Expected a ReferenceError to be thrown but no exception was thrown at all
language/expressions/assignment/dstr/array-rest-put-prop-ref-no-get.js: Expected no error, got TypeError: Cannot convert undefined to object
language/expressions/assignment/dstr/obj-rest-computed-property.js: Expected SameValue(«[object Object]», «undefined») to be true
language/expressions/assignment/dstr/obj-rest-same-name.js: { message: 'Expected SameValue(«3», «2») to be true' }
language/expressions/async-generator/dstr/dflt-obj-ptrn-id-get-value-err.js: Expected a Test262Error to be thrown but no exception was thrown at all
language/expressions/async-generator/dstr/dflt-obj-ptrn-rest-skip-non-enumerable.js: Test262Error: Expected SameValue(«4», «undefined») to be true
language/expressions/async-generator/dstr/named-dflt-obj-ptrn-id-get-value-err.js: Expected a Test262Error to be thrown but no exception was thrown at all
language/expressions/async-generator/dstr/named-dflt-obj-ptrn-rest-skip-non-enumerable.js: Test262Error: Expected SameValue(«4», «undefined») to be true
language/expressions/async-generator/dstr/named-obj-ptrn-id-get-value-err.js: Expected a Test262Error to be thrown but no exception was thrown at all
language/expressions/async-generator/dstr/named-obj-ptrn-rest-skip-non-enumerable.js: Test262Error: Expected SameValue(«4», «undefined») to be true
language/expressions/async-generator/dstr/obj-ptrn-id-get-value-err.js: Expected a Test262Error to be thrown but no exception was thrown at all
language/expressions/async-generator/dstr/obj-ptrn-rest-skip-non-enumerable.js: Test262Error: Expected SameValue(«4», «undefined») to be true
language/expressions/class/dstr/async-gen-meth-static-dflt-obj-ptrn-id-get-value-err.js: { message: 'Expected a Test262Error to be thrown but no exception was thrown at all' }
language/expressions/class/dstr/async-gen-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js: Test262Error: Expected SameValue(«4», «undefined») to be true
language/expressions/class/dstr/async-gen-meth-static-obj-ptrn-id-get-value-err.js: Expected a Test262Error to be thrown but no exception was thrown at all
language/expressions/class/dstr/async-gen-meth-static-obj-ptrn-rest-skip-non-enumerable.js: Test262Error: Expected SameValue(«4», «undefined») to be true
language/expressions/class/dstr/async-private-gen-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js: Test262Error: Expected SameValue(«4», «undefined») to be true
language/expressions/class/dstr/async-private-gen-meth-static-obj-ptrn-rest-skip-non-enumerable.js: Test262Error: Expected SameValue(«4», «undefined») to be true
language/expressions/class/dstr/gen-meth-static-dflt-obj-ptrn-id-get-value-err.js: Expected a Test262Error to be thrown but no exception was thrown at all
language/expressions/class/dstr/gen-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js: Expected SameValue(«4», «undefined») to be true
language/expressions/class/dstr/gen-meth-static-obj-ptrn-id-get-value-err.js: { message: 'Expected a Test262Error to be thrown but no exception was thrown at all' }
language/expressions/class/dstr/gen-meth-static-obj-ptrn-rest-skip-non-enumerable.js: Expected SameValue(«4», «undefined») to be true
language/expressions/class/dstr/meth-static-dflt-obj-ptrn-id-get-value-err.js: Expected a Test262Error to be thrown but no exception was thrown at all
language/expressions/class/dstr/meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js: Expected SameValue(«4», «undefined») to be true
language/expressions/class/dstr/meth-static-obj-ptrn-id-get-value-err.js: Expected a Test262Error to be thrown but no exception was thrown at all
language/expressions/class/dstr/meth-static-obj-ptrn-rest-skip-non-enumerable.js: Expected SameValue(«4», «undefined») to be true
language/expressions/class/dstr/private-gen-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js: Expected SameValue(«4», «undefined») to be true
language/expressions/class/dstr/private-gen-meth-static-obj-ptrn-rest-skip-non-enumerable.js: { message: 'Expected SameValue(«4», «undefined») to be true' }
language/expressions/class/dstr/private-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js: Expected SameValue(«4», «undefined») to be true
language/expressions/class/dstr/private-meth-static-obj-ptrn-rest-skip-non-enumerable.js: Expected SameValue(«4», «undefined») to be true
language/expressions/class/elements/after-same-line-gen-rs-static-privatename-identifier-alt-by-classname.js: Expected no error, got var: C=class{*m(){return 42}static $(value){return C.#$=value,C.#$}static _(value){return C.#_=value,C.#_}static o(value){return C.#o=value,C.#o}static ℘(value){return C.#℘=value,C.#℘}static ZW_‌_NJ(value){return C.#ZW_‌_NJ=value,C.#ZW_‌_NJ}static ZW_‍_J(value){return C.#ZW_‍_J=value,C.#ZW_‍_J}},c=new C;assert.sameValue(c.m().next().value,42),assert(!Object.prototype.hasOwnProperty.call(c,"m"),"m doesn't appear as an own property on the C instance"),assert.sameValue(c.m,C.prototype.m),verifyProperty(C.prototype,"m",{enumerable:!1,configurable:!0,writable:!0}),assert.sameValue(C.$(1),1),assert.sameValue(C._(1),1),assert.sameValue(C.o(1),1),assert.sameValue(C.℘(1),1),assert.sameValue(C.ZW_‌_NJ(1),1),assert.sameValue(C.ZW_‍_J(1),1);
language/expressions/class/elements/after-same-line-gen-rs-static-privatename-identifier-by-classname.js: Expected no error, got var: C=class{*m(){return 42}static $(value){return C.#$=value,C.#$}static _(value){return C.#_=value,C.#_}static o(value){return C.#o=value,C.#o}static ℘(value){return C.#℘=value,C.#℘}static ZW_‌_NJ(value){return C.#ZW_‌_NJ=value,C.#ZW_‌_NJ}static ZW_‍_J(value){return C.#ZW_‍_J=value,C.#ZW_‍_J}},c=new C;assert.sameValue(c.m().next().value,42),assert(!Object.prototype.hasOwnProperty.call(c,"m"),"m doesn't appear as an own property on the C instance"),assert.sameValue(c.m,C.prototype.m),verifyProperty(C.prototype,"m",{enumerable:!1,configurable:!0,writable:!0}),assert.sameValue(C.$(1),1),assert.sameValue(C._(1),1),assert.sameValue(C.o(1),1),assert.sameValue(C.℘(1),1),assert.sameValue(C.ZW_‌_NJ(1),1),assert.sameValue(C.ZW_‍_J(1),1);
language/expressions/class/elements/after-same-line-gen-rs-static-privatename-identifier-alt.js: Expected no error, got var: C=class{*m(){return 42}static $(value){return this.#$=value,this.#$}static _(value){return this.#_=value,this.#_}static o(value){return this.#o=value,this.#o}static ℘(value){return this.#℘=value,this.#℘}static ZW_‌_NJ(value){return this.#ZW_‌_NJ=value,this.#ZW_‌_NJ}static ZW_‍_J(value){return this.#ZW_‍_J=value,this.#ZW_‍_J}},c=new C;assert.sameValue(c.m().next().value,42),assert(!Object.prototype.hasOwnProperty.call(c,"m"),"m doesn't appear as an own property on the C instance"),assert.sameValue(c.m,C.prototype.m),verifyProperty(C.prototype,"m",{enumerable:!1,configurable:!0,writable:!0}),assert.sameValue(C.$(1),1),assert.sameValue(C._(1),1),assert.sameValue(C.o(1),1),assert.sameValue(C.℘(1),1),assert.sameValue(C.ZW_‌_NJ(1),1),assert.sameValue(C.ZW_‍_J(1),1);
language/expressions/class/elements/after-same-line-gen-rs-static-privatename-identifier.js: Expected no error, got var: C=class{*m(){return 42}static $(value){return this.#$=value,this.#$}static _(value){return this.#_=value,this.#_}static o(value){return this.#o=value,this.#o}static ℘(value){return this.#℘=value,this.#℘}static ZW_‌_NJ(value){return this.#ZW_‌_NJ=value,this.#ZW_‌_NJ}static ZW_‍_J(value){return this.#ZW_‍_J=value,this.#ZW_‍_J}},c=new C;assert.sameValue(c.m().next().value,42),assert(!Object.prototype.hasOwnProperty.call(c,"m"),"m doesn't appear as an own property on the C instance"),assert.sameValue(c.m,C.prototype.m),verifyProperty(C.prototype,"m",{enumerable:!1,configurable:!0,writable:!0}),assert.sameValue(C.$(1),1),assert.sameValue(C._(1),1),assert.sameValue(C.o(1),1),assert.sameValue(C.℘(1),1),assert.sameValue(C.ZW_‌_NJ(1),1),assert.sameValue(C.ZW_‍_J(1),1);
language/expressions/class/elements/after-same-line-gen-static-private-fields.js: Expected no error, got var: C=class{*m(){return 42}static x(){return this.#x=42,this.#x}static y(){return this.#y=43,this.#y}},c=new C;assert.sameValue(c.m().next().value,42),assert(!Object.prototype.hasOwnProperty.call(c,"m"),"m doesn't appear as an own property on the C instance"),assert.sameValue(c.m,C.prototype.m),verifyProperty(C.prototype,"m",{enumerable:!1,configurable:!0,writable:!0}),assert(!Object.prototype.hasOwnProperty.call(C.prototype,"#x"),"test 1"),assert(!Object.prototype.hasOwnProperty.call(C,"#x"),"test 2"),assert(!Object.prototype.hasOwnProperty.call(c,"#x"),"test 3"),assert(!Object.prototype.hasOwnProperty.call(C.prototype,"#y"),"test 4"),assert(!Object.prototype.hasOwnProperty.call(C,"#y"),"test 5"),assert(!Object.prototype.hasOwnProperty.call(c,"#y"),"test 6"),assert.sameValue(C.x(),42,"test 7"),assert.sameValue(C.y(),43,"test 8"),assert(!Object.prototype.hasOwnProperty.call(C,"#x"),"test 9"),assert(!Object.prototype.hasOwnProperty.call(C,"#y"),"test 10");
language/expressions/class/elements/after-same-line-gen-static-private-methods-with-fields.js: Expected no error, got var: C=class{*m(){return 42}static#x(value){return this.#xVal=value,this.#xVal}static#y(value){return this.#yVal=value,this.#yVal}static x(){return this.#x(42)}static y(){return this.#y(43)}},c=new C;assert.sameValue(c.m().next().value,42),assert(!Object.prototype.hasOwnProperty.call(c,"m"),"m doesn't appear as an own property on the C instance"),assert.sameValue(c.m,C.prototype.m),verifyProperty(C.prototype,"m",{enumerable:!1,configurable:!0,writable:!0}),assert(!Object.prototype.hasOwnProperty.call(C.prototype,"#x"),"test 1"),assert(!Object.prototype.hasOwnProperty.call(C,"#x"),"test 2"),assert(!Object.prototype.hasOwnProperty.call(c,"#x"),"test 3"),assert(!Object.prototype.hasOwnProperty.call(C.prototype,"#y"),"test 4"),assert(!Object.prototype.hasOwnProperty.call(C,"#y"),"test 5"),assert(!Object.prototype.hasOwnProperty.call(c,"#y"),"test 6"),assert(!Object.prototype.hasOwnProperty.call(C.prototype,"#xVal"),"test 7"),assert(!Object.prototype.hasOwnProperty.call(C,"#xVal"),"test 8"),assert(!Object.prototype.hasOwnProperty.call(c,"#xVal"),"test 9"),assert(!Object.prototype.hasOwnProperty.call(C.prototype,"#yVal"),"test 10"),assert(!Object.prototype.hasOwnProperty.call(C,"#yVal"),"test 11"),assert(!Object.prototype.hasOwnProperty.call(c,"#yVal"),"test 12"),assert.sameValue(C.x(),42,"test 13"),assert.sameValue(C.y(),43,"test 14"),assert(!Object.prototype.hasOwnProperty.call(C,"#x"),"test 15"),assert(!Object.prototype.hasOwnProperty.call(C,"#y"),"test 16"),assert(!Object.prototype.hasOwnProperty.call(C,"#xVal"),"test 17"),assert(!Object.prototype.hasOwnProperty.call(C,"#yVal"),"test 18");
language/expressions/class/elements/after-same-line-method-rs-static-privatename-identifier-alt-by-classname.js: Expected no error, got var: C=class{m(){return 42}static $(value){return C.#$=value,C.#$}static _(value){return C.#_=value,C.#_}static o(value){return C.#o=value,C.#o}static ℘(value){return C.#℘=value,C.#℘}static ZW_‌_NJ(value){return C.#ZW_‌_NJ=value,C.#ZW_‌_NJ}static ZW_‍_J(value){return C.#ZW_‍_J=value,C.#ZW_‍_J}},c=new C;assert.sameValue(c.m(),42),assert(!Object.prototype.hasOwnProperty.call(c,"m"),"m doesn't appear as an own property on the C instance"),assert.sameValue(c.m,C.prototype.m),verifyProperty(C.prototype,"m",{enumerable:!1,configurable:!0,writable:!0}),assert.sameValue(C.$(1),1),assert.sameValue(C._(1),1),assert.sameValue(C.o(1),1),assert.sameValue(C.℘(1),1),assert.sameValue(C.ZW_‌_NJ(1),1),assert.sameValue(C.ZW_‍_J(1),1);
language/expressions/class/elements/after-same-line-method-rs-static-privatename-identifier-by-classname.js: Expected no error, got var: C=class{m(){return 42}static $(value){return C.#$=value,C.#$}static _(value){return C.#_=value,C.#_}static o(value){return C.#o=value,C.#o}static ℘(value){return C.#℘=value,C.#℘}static ZW_‌_NJ(value){return C.#ZW_‌_NJ=value,C.#ZW_‌_NJ}static ZW_‍_J(value){return C.#ZW_‍_J=value,C.#ZW_‍_J}},c=new C;assert.sameValue(c.m(),42),assert(!Object.prototype.hasOwnProperty.call(c,"m"),"m doesn't appear as an own property on the C instance"),assert.sameValue(c.m,C.prototype.m),verifyProperty(C.prototype,"m",{enumerable:!1,configurable:!0,writable:!0}),assert.sameValue(C.$(1),1),assert.sameValue(C._(1),1),assert.sameValue(C.o(1),1),assert.sameValue(C.℘(1),1),assert.sameValue(C.ZW_‌_NJ(1),1),assert.sameValue(C.ZW_‍_J(1),1);
language/expressions/class/elements/after-same-line-method-rs-static-privatename-identifier-alt.js: Expected no error, got var: C=class{m(){return 42}static $(value){return this.#$=value,this.#$}static _(value){return this.#_=value,this.#_}static o(value){return this.#o=value,this.#o}static ℘(value){return this.#℘=value,this.#℘}static ZW_‌_NJ(value){return this.#ZW_‌_NJ=value,this.#ZW_‌_NJ}static ZW_‍_J(value){return this.#ZW_‍_J=value,this.#ZW_‍_J}},c=new C;assert.sameValue(c.m(),42),assert(!Object.prototype.hasOwnProperty.call(c,"m"),"m doesn't appear as an own property on the C instance"),assert.sameValue(c.m,C.prototype.m),verifyProperty(C.prototype,"m",{enumerable:!1,configurable:!0,writable:!0}),assert.sameValue(C.$(1),1),assert.sameValue(C._(1),1),assert.sameValue(C.o(1),1),assert.sameValue(C.℘(1),1),assert.sameValue(C.ZW_‌_NJ(1),1),assert.sameValue(C.ZW_‍_J(1),1);
language/expressions/class/elements/after-same-line-method-rs-static-privatename-identifier.js: Expected no error, got var: C=class{m(){return 42}static $(value){return this.#$=value,this.#$}static _(value){return this.#_=value,this.#_}static o(value){return this.#o=value,this.#o}static ℘(value){return this.#℘=value,this.#℘}static ZW_‌_NJ(value){return this.#ZW_‌_NJ=value,this.#ZW_‌_NJ}static ZW_‍_J(value){return this.#ZW_‍_J=value,this.#ZW_‍_J}},c=new C;assert.sameValue(c.m(),42),assert(!Object.prototype.hasOwnProperty.call(c,"m"),"m doesn't appear as an own property on the C instance"),assert.sameValue(c.m,C.prototype.m),verifyProperty(C.prototype,"m",{enumerable:!1,configurable:!0,writable:!0}),assert.sameValue(C.$(1),1),assert.sameValue(C._(1),1),assert.sameValue(C.o(1),1),assert.sameValue(C.℘(1),1),assert.sameValue(C.ZW_‌_NJ(1),1),assert.sameValue(C.ZW_‍_J(1),1);
language/expressions/class/elements/after-same-line-method-static-private-fields.js: Expected no error, got var: C=class{m(){return 42}static x(){return this.#x=42,this.#x}static y(){return this.#y=43,this.#y}},c=new C;assert.sameValue(c.m(),42),assert(!Object.prototype.hasOwnProperty.call(c,"m"),"m doesn't appear as an own property on the C instance"),assert.sameValue(c.m,C.prototype.m),verifyProperty(C.prototype,"m",{enumerable:!1,configurable:!0,writable:!0}),assert(!Object.prototype.hasOwnProperty.call(C.prototype,"#x"),"test 1"),assert(!Object.prototype.hasOwnProperty.call(C,"#x"),"test 2"),assert(!Object.prototype.hasOwnProperty.call(c,"#x"),"test 3"),assert(!Object.prototype.hasOwnProperty.call(C.prototype,"#y"),"test 4"),assert(!Object.prototype.hasOwnProperty.call(C,"#y"),"test 5"),assert(!Object.prototype.hasOwnProperty.call(c,"#y"),"test 6"),assert.sameValue(C.x(),42,"test 7"),assert.sameValue(C.y(),43,"test 8"),assert(!Object.prototype.hasOwnProperty.call(C,"#x"),"test 9"),assert(!Object.prototype.hasOwnProperty.call(C,"#y"),"test 10");
language/expressions/class/elements/after-same-line-method-static-private-methods-with-fields.js: Expected no error, got var: C=class{m(){return 42}static#x(value){return this.#xVal=value,this.#xVal}static#y(value){return this.#yVal=value,this.#yVal}static x(){return this.#x(42)}static y(){return this.#y(43)}},c=new C;assert.sameValue(c.m(),42),assert(!Object.prototype.hasOwnProperty.call(c,"m"),"m doesn't appear as an own property on the C instance"),assert.sameValue(c.m,C.prototype.m),verifyProperty(C.prototype,"m",{enumerable:!1,configurable:!0,writable:!0}),assert(!Object.prototype.hasOwnProperty.call(C.prototype,"#x"),"test 1"),assert(!Object.prototype.hasOwnProperty.call(C,"#x"),"test 2"),assert(!Object.prototype.hasOwnProperty.call(c,"#x"),"test 3"),assert(!Object.prototype.hasOwnProperty.call(C.prototype,"#y"),"test 4"),assert(!Object.prototype.hasOwnProperty.call(C,"#y"),"test 5"),assert(!Object.prototype.hasOwnProperty.call(c,"#y"),"test 6"),assert(!Object.prototype.hasOwnProperty.call(C.prototype,"#xVal"),"test 7"),assert(!Object.prototype.hasOwnProperty.call(C,"#xVal"),"test 8"),assert(!Object.prototype.hasOwnProperty.call(c,"#xVal"),"test 9"),assert(!Object.prototype.hasOwnProperty.call(C.prototype,"#yVal"),"test 10"),assert(!Object.prototype.hasOwnProperty.call(C,"#yVal"),"test 11"),assert(!Object.prototype.hasOwnProperty.call(c,"#yVal"),"test 12"),assert.sameValue(C.x(),42,"test 13"),assert.sameValue(C.y(),43,"test 14"),assert(!Object.prototype.hasOwnProperty.call(C,"#x"),"test 15"),assert(!Object.prototype.hasOwnProperty.call(C,"#y"),"test 16"),assert(!Object.prototype.hasOwnProperty.call(C,"#xVal"),"test 17"),assert(!Object.prototype.hasOwnProperty.call(C,"#yVal"),"test 18");
language/expressions/class/elements/after-same-line-static-async-gen-rs-static-privatename-identifier-alt.js: Expected no error, got var: C=class{static async*m(){return 42}static $(value){return this.#$=value,this.#$}static _(value){return this.#_=value,this.#_}static o(value){return this.#o=value,this.#o}static ℘(value){return this.#℘=value,this.#℘}static ZW_‌_NJ(value){return this.#ZW_‌_NJ=value,this.#ZW_‌_NJ}static ZW_‍_J(value){return this.#ZW_‍_J=value,this.#ZW_‍_J}},c=new C;assert(!Object.prototype.hasOwnProperty.call(c,"m"),"m doesn't appear as an own property on the C instance"),assert(!Object.prototype.hasOwnProperty.call(C.prototype,"m"),"m doesn't appear as an own property on the C prototype"),verifyProperty(C,"m",{enumerable:!1,configurable:!0,writable:!0},{restore:!0}),C.m().next().then(function(v){assert.sameValue(v.value,42),assert.sameValue(v.done,!0);function assertions(){assert.sameValue(C.$(1),1),assert.sameValue(C._(1),1),assert.sameValue(C.o(1),1),assert.sameValue(C.℘(1),1),assert.sameValue(C.ZW_‌_NJ(1),1),assert.sameValue(C.ZW_‍_J(1),1)}return Promise.resolve((assertions(),void 0))}).then($DONE,$DONE);
language/expressions/class/elements/after-same-line-static-async-gen-rs-static-privatename-identifier-alt-by-classname.js: Expected no error, got var: C=class{static async*m(){return 42}static $(value){return C.#$=value,C.#$}static _(value){return C.#_=value,C.#_}static o(value){return C.#o=value,C.#o}static ℘(value){return C.#℘=value,C.#℘}static ZW_‌_NJ(value){return C.#ZW_‌_NJ=value,C.#ZW_‌_NJ}static ZW_‍_J(value){return C.#ZW_‍_J=value,C.#ZW_‍_J}},c=new C;assert(!Object.prototype.hasOwnProperty.call(c,"m"),"m doesn't appear as an own property on the C instance"),assert(!Object.prototype.hasOwnProperty.call(C.prototype,"m"),"m doesn't appear as an own property on the C prototype"),verifyProperty(C,"m",{enumerable:!1,configurable:!0,writable:!0},{restore:!0}),C.m().next().then(function(v){assert.sameValue(v.value,42),assert.sameValue(v.done,!0);function assertions(){assert.sameValue(C.$(1),1),assert.sameValue(C._(1),1),assert.sameValue(C.o(1),1),assert.sameValue(C.℘(1),1),assert.sameValue(C.ZW_‌_NJ(1),1),assert.sameValue(C.ZW_‍_J(1),1)}return Promise.resolve((assertions(),void 0))}).then($DONE,$DONE);
language/expressions/class/elements/after-same-line-static-async-gen-rs-static-privatename-identifier-by-classname.js: Expected no error, got var: C=class{static async*m(){return 42}static $(value){return C.#$=value,C.#$}static _(value){return C.#_=value,C.#_}static o(value){return C.#o=value,C.#o}static ℘(value){return C.#℘=value,C.#℘}static ZW_‌_NJ(value){return C.#ZW_‌_NJ=value,C.#ZW_‌_NJ}static ZW_‍_J(value){return C.#ZW_‍_J=value,C.#ZW_‍_J}},c=new C;assert(!Object.prototype.hasOwnProperty.call(c,"m"),"m doesn't appear as an own property on the C instance"),assert(!Object.prototype.hasOwnProperty.call(C.prototype,"m"),"m doesn't appear as an own property on the C prototype"),verifyProperty(C,"m",{enumerable:!1,configurable:!0,writable:!0},{restore:!0}),C.m().next().then(function(v){assert.sameValue(v.value,42),assert.sameValue(v.done,!0);function assertions(){assert.sameValue(C.$(1),1),assert.sameValue(C._(1),1),assert.sameValue(C.o(1),1),assert.sameValue(C.℘(1),1),assert.sameValue(C.ZW_‌_NJ(1),1),assert.sameValue(C.ZW_‍_J(1),1)}return Promise.resolve((assertions(),void 0))}).then($DONE,$DONE);
language/expressions/class/elements/after-same-line-static-async-gen-rs-static-privatename-identifier.js: Expected no error, got var: C=class{static async*m(){return 42}static $(value){return this.#$=value,this.#$}static _(value){return this.#_=value,this.#_}static o(value){return this.#o=value,this.#o}static ℘(value){return this.#℘=value,this.#℘}static ZW_‌_NJ(value){return this.#ZW_‌_NJ=value,this.#ZW_‌_NJ}static ZW_‍_J(value){return this.#ZW_‍_J=value,this.#ZW_‍_J}},c=new C;assert(!Object.prototype.hasOwnProperty.call(c,"m"),"m doesn't appear as an own property on the C instance"),assert(!Object.prototype.hasOwnProperty.call(C.prototype,"m"),"m doesn't appear as an own property on the C prototype"),verifyProperty(C,"m",{enumerable:!1,configurable:!0,writable:!0},{restore:!0}),C.m().next().then(function(v){assert.sameValue(v.value,42),assert.sameValue(v.done,!0);function assertions(){assert.sameValue(C.$(1),1),assert.sameValue(C._(1),1),assert.sameValue(C.o(1),1),assert.sameValue(C.℘(1),1),assert.sameValue(C.ZW_‌_NJ(1),1),assert.sameValue(C.ZW_‍_J(1),1)}return Promise.resolve((assertions(),void 0))}).then($DONE,$DONE);
language/expressions/class/elements/after-same-line-static-async-gen-static-private-fields.js: Expected no error, got var: C=class{static async*m(){return 42}static x(){return this.#x=42,this.#x}static y(){return this.#y=43,this.#y}},c=new C;assert(!Object.prototype.hasOwnProperty.call(c,"m"),"m doesn't appear as an own property on the C instance"),assert(!Object.prototype.hasOwnProperty.call(C.prototype,"m"),"m doesn't appear as an own property on the C prototype"),verifyProperty(C,"m",{enumerable:!1,configurable:!0,writable:!0},{restore:!0}),C.m().next().then(function(v){assert.sameValue(v.value,42),assert.sameValue(v.done,!0);function assertions(){assert(!Object.prototype.hasOwnProperty.call(C.prototype,"#x"),"test 1"),assert(!Object.prototype.hasOwnProperty.call(C,"#x"),"test 2"),assert(!Object.prototype.hasOwnProperty.call(c,"#x"),"test 3"),assert(!Object.prototype.hasOwnProperty.call(C.prototype,"#y"),"test 4"),assert(!Object.prototype.hasOwnProperty.call(C,"#y"),"test 5"),assert(!Object.prototype.hasOwnProperty.call(c,"#y"),"test 6"),assert.sameValue(C.x(),42,"test 7"),assert.sameValue(C.y(),43,"test 8"),assert(!Object.prototype.hasOwnProperty.call(C,"#x"),"test 9"),assert(!Object.prototype.hasOwnProperty.call(C,"#y"),"test 10")}return Promise.resolve((assertions(),void 0))}).then($DONE,$DONE);
language/expressions/class/elements/after-same-line-static-async-gen-static-private-methods-with-fields.js: Expected no error, got var: C=class{static async*m(){return 42}static#x(value){return this.#xVal=value,this.#xVal}static#y(value){return this.#yVal=value,this.#yVal}static x(){return this.#x(42)}static y(){return this.#y(43)}},c=new C;assert(!Object.prototype.hasOwnProperty.call(c,"m"),"m doesn't appear as an own property on the C instance"),assert(!Object.prototype.hasOwnProperty.call(C.prototype,"m"),"m doesn't appear as an own property on the C prototype"),verifyProperty(C,"m",{enumerable:!1,configurable:!0,writable:!0},{restore:!0}),C.m().next().then(function(v){assert.sameValue(v.value,42),assert.sameValue(v.done,!0);function assertions(){assert(!Object.prototype.hasOwnProperty.call(C.prototype,"#x"),"test 1"),assert(!Object.prototype.hasOwnProperty.call(C,"#x"),"test 2"),assert(!Object.prototype.hasOwnProperty.call(c,"#x"),"test 3"),assert(!Object.prototype.hasOwnProperty.call(C.prototype,"#y"),"test 4"),assert(!Object.prototype.hasOwnProperty.call(C,"#y"),"test 5"),assert(!Object.prototype.hasOwnProperty.call(c,"#y"),"test 6"),assert(!Object.prototype.hasOwnProperty.call(C.prototype,"#xVal"),"test 7"),assert(!Object.prototype.hasOwnProperty.call(C,"#xVal"),"test 8"),assert(!Object.prototype.hasOwnProperty.call(c,"#xVal"),"test 9"),assert(!Object.prototype.hasOwnProperty.call(C.prototype,"#yVal"),"test 10"),assert(!Object.prototype.hasOwnProperty.call(C,"#yVal"),"test 11"),assert(!Object.prototype.hasOwnProperty.call(c,"#yVal"),"test 12"),assert.sameValue(C.x(),42,"test 13"),assert.sameValue(C.y(),43,"test 14"),assert(!Object.prototype.hasOwnProperty.call(C,"#x"),"test 15"),assert(!Object.prototype.hasOwnProperty.call(C,"#y"),"test 16"),assert(!Object.prototype.hasOwnProperty.call(C,"#xVal"),"test 17"),assert(!Object.prototype.hasOwnProperty.call(C,"#yVal"),"test 18")}return Promise.resolve((assertions(),void 0))}).then($DONE,$DONE);
language/expressions/class/elements/after-same-line-static-async-method-rs-static-privatename-identifier-alt-by-classname.js: Expected no error, got var: C=class{static async m(){return 42}static $(value){return C.#$=value,C.#$}static _(value){return C.#_=value,C.#_}static o(value){return C.#o=value,C.#o}static ℘(value){return C.#℘=value,C.#℘}static ZW_‌_NJ(value){return C.#ZW_‌_NJ=value,C.#ZW_‌_NJ}static ZW_‍_J(value){return C.#ZW_‍_J=value,C.#ZW_‍_J}},c=new C;assert(!Object.prototype.hasOwnProperty.call(c,"m"),"m doesn't appear as an own property on the C instance"),assert(!Object.prototype.hasOwnProperty.call(C.prototype,"m"),"m doesn't appear as an own property on the C prototype"),verifyProperty(C,"m",{enumerable:!1,configurable:!0,writable:!0},{restore:!0}),C.m().then(function(v){assert.sameValue(v,42);function assertions(){assert.sameValue(C.$(1),1),assert.sameValue(C._(1),1),assert.sameValue(C.o(1),1),assert.sameValue(C.℘(1),1),assert.sameValue(C.ZW_‌_NJ(1),1),assert.sameValue(C.ZW_‍_J(1),1)}return Promise.resolve((assertions(),void 0))}).then($DONE,$DONE);
[language/expressions/class/elements/after-same-line-static-async-method-rs-static-privatename-identifier-alt

Please sign in to comment.