Skip to content

Commit 1528d68

Browse files
committed
feat(parser): admit public static initialization
1 parent 25a0bd1 commit 1528d68

8 files changed

Lines changed: 336 additions & 92 deletions

File tree

compat/test262-oxide.conf

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,8 @@ caller
9999
change-array-by-copy
100100
class
101101
class-fields-public
102+
class-static-block
103+
class-static-fields-public
102104
coalesce-expression
103105
computed-property-names
104106
const
@@ -391,6 +393,8 @@ test/language/expressions/arrow-function/object-destructuring-param-strict-body.
391393
test/language/expressions/arrow-function/param-dflt-yield-expr.js
392394
test/language/expressions/arrow-function/param-dflt-yield-id-strict.js
393395
test/language/expressions/arrow-function/rest-param-strict-body.js
396+
test/language/expressions/arrow-function/static-init-await-binding.js
397+
test/language/expressions/arrow-function/static-init-await-reference.js
394398
test/language/expressions/arrow-function/syntax/early-errors/use-strict-with-non-simple-param.js
395399
test/language/expressions/assignment/dstr/array-elem-init-yield-ident-invalid.js
396400
test/language/expressions/assignment/dstr/array-elem-nested-array-invalid.js
@@ -623,12 +627,24 @@ test/language/expressions/class/elements/nested-equality-init-err-contains-argum
623627
test/language/expressions/class/elements/nested-equality-init-err-contains-super.js
624628
test/language/expressions/class/elements/nested-literal-name-init-err-contains-arguments.js
625629
test/language/expressions/class/elements/nested-literal-name-init-err-contains-super.js
630+
test/language/expressions/class/elements/nested-static-comp-name-init-err-contains-arguments.js
631+
test/language/expressions/class/elements/nested-static-comp-name-init-err-contains-super.js
632+
test/language/expressions/class/elements/nested-static-literal-init-err-contains-arguments.js
633+
test/language/expressions/class/elements/nested-static-literal-init-err-contains-super.js
634+
test/language/expressions/class/elements/nested-static-string-literal-name-init-err-contains-arguments.js
635+
test/language/expressions/class/elements/nested-static-string-literal-name-init-err-contains-super.js
626636
test/language/expressions/class/elements/nested-string-literal-name-init-err-contains-arguments.js
627637
test/language/expressions/class/elements/nested-string-literal-name-init-err-contains-super.js
628638
test/language/expressions/class/elements/nested-ternary-init-err-contains-arguments.js
629639
test/language/expressions/class/elements/nested-ternary-init-err-contains-super.js
630640
test/language/expressions/class/elements/nested-typeof-init-err-contains-arguments.js
631641
test/language/expressions/class/elements/nested-typeof-init-err-contains-super.js
642+
test/language/expressions/class/elements/static-comp-name-init-err-contains-arguments.js
643+
test/language/expressions/class/elements/static-comp-name-init-err-contains-super.js
644+
test/language/expressions/class/elements/static-literal-init-err-contains-arguments.js
645+
test/language/expressions/class/elements/static-literal-init-err-contains-super.js
646+
test/language/expressions/class/elements/static-string-literal-name-init-err-contains-arguments.js
647+
test/language/expressions/class/elements/static-string-literal-name-init-err-contains-super.js
632648
test/language/expressions/class/elements/string-literal-name-init-err-contains-arguments.js
633649
test/language/expressions/class/elements/string-literal-name-init-err-contains-super.js
634650
test/language/expressions/class/elements/syntax/early-errors/class-heritage-array-literal-arrow-heritage.js
@@ -708,6 +724,7 @@ test/language/expressions/class/method/dflt-params-rest.js
708724
test/language/expressions/class/method/object-destructuring-param-strict-body.js
709725
test/language/expressions/class/method/rest-param-strict-body.js
710726
test/language/expressions/class/static-gen-method-param-dflt-yield.js
727+
test/language/expressions/class/static-init-await-binding.js
711728
test/language/expressions/class/static-method-param-dflt-yield.js
712729
test/language/expressions/coalesce/cannot-chain-head-with-logical-and.js
713730
test/language/expressions/coalesce/cannot-chain-head-with-logical-or.js
@@ -826,6 +843,7 @@ test/language/expressions/object/dstr/meth-dflt-ary-ptrn-rest-not-final-obj.js
826843
test/language/expressions/object/getter-body-strict-inside.js
827844
test/language/expressions/object/getter-body-strict-outside.js
828845
test/language/expressions/object/getter-param-dflt.js
846+
test/language/expressions/object/identifier-shorthand-static-init-await-invalid.js
829847
test/language/expressions/object/method-definition/async-gen-meth-array-destructuring-param-strict-body.js
830848
test/language/expressions/object/method-definition/async-gen-meth-dflt-params-duplicates.js
831849
test/language/expressions/object/method-definition/async-gen-meth-dflt-params-rest.js
@@ -943,6 +961,7 @@ test/language/future-reserved-words/yield-strict.js
943961
test/language/global-code/decl-lex-restricted-global.js
944962
test/language/global-code/new.target-arrow.js
945963
test/language/global-code/new.target.js
964+
test/language/identifier-resolution/static-init-invalid-await.js
946965
test/language/identifiers/unicode-escape-nls-err.js
947966
test/language/identifiers/val-debugger-via-escape-hex.js
948967
test/language/identifiers/val-debugger-via-escape-hex4.js
@@ -1315,6 +1334,7 @@ test/language/statements/async-generator/dflt-params-duplicates.js
13151334
test/language/statements/async-generator/dflt-params-rest.js
13161335
test/language/statements/async-generator/object-destructuring-param-strict-body.js
13171336
test/language/statements/async-generator/rest-param-strict-body.js
1337+
test/language/statements/break/static-init-without-label.js
13181338
test/language/statements/class/async-gen-method-static/array-destructuring-param-strict-body.js
13191339
test/language/statements/class/async-gen-method-static/dflt-params-duplicates.js
13201340
test/language/statements/class/async-gen-method-static/dflt-params-rest.js
@@ -1427,7 +1447,11 @@ test/language/statements/class/elements/fields-asi-4.js
14271447
test/language/statements/class/elements/fields-asi-same-line-1.js
14281448
test/language/statements/class/elements/fields-asi-same-line-2.js
14291449
test/language/statements/class/elements/fields-literal-name-propname-constructor.js
1450+
test/language/statements/class/elements/fields-literal-name-static-propname-constructor.js
1451+
test/language/statements/class/elements/fields-literal-name-static-propname-prototype.js
14301452
test/language/statements/class/elements/fields-string-name-propname-constructor.js
1453+
test/language/statements/class/elements/fields-string-name-static-propname-constructor.js
1454+
test/language/statements/class/elements/fields-string-name-static-propname-prototype.js
14311455
test/language/statements/class/elements/literal-name-init-err-contains-arguments.js
14321456
test/language/statements/class/elements/literal-name-init-err-contains-super.js
14331457
test/language/statements/class/elements/nested-arrow-fnc-init-err-contains-arguments.js
@@ -1438,12 +1462,24 @@ test/language/statements/class/elements/nested-equality-init-err-contains-argume
14381462
test/language/statements/class/elements/nested-equality-init-err-contains-super.js
14391463
test/language/statements/class/elements/nested-literal-name-init-err-contains-arguments.js
14401464
test/language/statements/class/elements/nested-literal-name-init-err-contains-super.js
1465+
test/language/statements/class/elements/nested-static-comp-name-init-err-contains-arguments.js
1466+
test/language/statements/class/elements/nested-static-comp-name-init-err-contains-super.js
1467+
test/language/statements/class/elements/nested-static-literal-init-err-contains-arguments.js
1468+
test/language/statements/class/elements/nested-static-literal-init-err-contains-super.js
1469+
test/language/statements/class/elements/nested-static-string-literal-name-init-err-contains-arguments.js
1470+
test/language/statements/class/elements/nested-static-string-literal-name-init-err-contains-super.js
14411471
test/language/statements/class/elements/nested-string-literal-name-init-err-contains-arguments.js
14421472
test/language/statements/class/elements/nested-string-literal-name-init-err-contains-super.js
14431473
test/language/statements/class/elements/nested-ternary-init-err-contains-arguments.js
14441474
test/language/statements/class/elements/nested-ternary-init-err-contains-super.js
14451475
test/language/statements/class/elements/nested-typeof-init-err-contains-arguments.js
14461476
test/language/statements/class/elements/nested-typeof-init-err-contains-super.js
1477+
test/language/statements/class/elements/static-comp-name-init-err-contains-arguments.js
1478+
test/language/statements/class/elements/static-comp-name-init-err-contains-super.js
1479+
test/language/statements/class/elements/static-literal-init-err-contains-arguments.js
1480+
test/language/statements/class/elements/static-literal-init-err-contains-super.js
1481+
test/language/statements/class/elements/static-string-literal-name-init-err-contains-arguments.js
1482+
test/language/statements/class/elements/static-string-literal-name-init-err-contains-super.js
14471483
test/language/statements/class/elements/string-literal-name-init-err-contains-arguments.js
14481484
test/language/statements/class/elements/string-literal-name-init-err-contains-super.js
14491485
test/language/statements/class/elements/syntax/early-errors/class-heritage-array-literal-arrow-heritage.js
@@ -1523,6 +1559,17 @@ test/language/statements/class/method/dflt-params-rest.js
15231559
test/language/statements/class/method/object-destructuring-param-strict-body.js
15241560
test/language/statements/class/method/rest-param-strict-body.js
15251561
test/language/statements/class/static-gen-method-param-dflt-yield.js
1562+
test/language/statements/class/static-init-await-binding-invalid.js
1563+
test/language/statements/class/static-init-invalid-arguments.js
1564+
test/language/statements/class/static-init-invalid-await.js
1565+
test/language/statements/class/static-init-invalid-label-dup.js
1566+
test/language/statements/class/static-init-invalid-lex-dup.js
1567+
test/language/statements/class/static-init-invalid-lex-var.js
1568+
test/language/statements/class/static-init-invalid-return.js
1569+
test/language/statements/class/static-init-invalid-super-call.js
1570+
test/language/statements/class/static-init-invalid-undefined-break-target.js
1571+
test/language/statements/class/static-init-invalid-undefined-continue-target.js
1572+
test/language/statements/class/static-init-invalid-yield.js
15261573
test/language/statements/class/static-method-param-yield.js
15271574
test/language/statements/const/dstr/ary-ptrn-rest-init-ary.js
15281575
test/language/statements/const/dstr/ary-ptrn-rest-init-id.js
@@ -1531,7 +1578,10 @@ test/language/statements/const/dstr/ary-ptrn-rest-not-final-ary.js
15311578
test/language/statements/const/dstr/ary-ptrn-rest-not-final-id.js
15321579
test/language/statements/const/dstr/ary-ptrn-rest-not-final-obj.js
15331580
test/language/statements/const/global-use-before-initialization-in-declaration-statement.js
1581+
test/language/statements/const/static-init-await-binding-invalid.js
15341582
test/language/statements/const/syntax/with-initializer-while-expression-statement.js
1583+
test/language/statements/continue/static-init-with-label.js
1584+
test/language/statements/continue/static-init-without-label.js
15351585
test/language/statements/debugger/expression.js
15361586
test/language/statements/do-while/decl-gen.js
15371587
test/language/statements/for-in/decl-gen.js
@@ -1659,6 +1709,7 @@ test/language/statements/function/early-body-super-prop.js
16591709
test/language/statements/function/object-destructuring-param-strict-body.js
16601710
test/language/statements/function/param-dflt-yield-strict.js
16611711
test/language/statements/function/rest-param-strict-body.js
1712+
test/language/statements/function/static-init-await-binding-invalid.js
16621713
test/language/statements/function/use-strict-with-non-simple-param.js
16631714
test/language/statements/generators/array-destructuring-param-strict-body.js
16641715
test/language/statements/generators/dflt-params-duplicates.js
@@ -1700,6 +1751,7 @@ test/language/statements/if/if-gen-no-else.js
17001751
test/language/statements/if/if-stmt-else-gen.js
17011752
test/language/statements/labeled/continue.js
17021753
test/language/statements/labeled/decl-gen.js
1754+
test/language/statements/labeled/static-init-invalid-await.js
17031755
test/language/statements/labeled/value-await-module-escaped.js
17041756
test/language/statements/labeled/value-await-module.js
17051757
test/language/statements/let/dstr/ary-ptrn-rest-init-ary.js
@@ -1709,6 +1761,7 @@ test/language/statements/let/dstr/ary-ptrn-rest-not-final-ary.js
17091761
test/language/statements/let/dstr/ary-ptrn-rest-not-final-id.js
17101762
test/language/statements/let/dstr/ary-ptrn-rest-not-final-obj.js
17111763
test/language/statements/let/global-use-before-initialization-in-prior-statement.js
1764+
test/language/statements/let/static-init-await-binding-invalid.js
17121765
test/language/statements/let/syntax/let-newline-yield-in-generator-function.js
17131766
test/language/statements/switch/scope-lex-const.js
17141767
test/language/statements/switch/syntax/redeclaration/class-name-redeclaration-attempt-with-generator.js
@@ -1730,17 +1783,21 @@ test/language/statements/try/dstr/ary-ptrn-rest-not-final-id.js
17301783
test/language/statements/try/dstr/ary-ptrn-rest-not-final-obj.js
17311784
test/language/statements/try/early-catch-lex.js
17321785
test/language/statements/try/optional-catch-binding-parens.js
1786+
test/language/statements/try/static-init-await-binding-invalid.js
17331787
test/language/statements/variable/S12.2_A8_T2.js
17341788
test/language/statements/variable/S12.2_A8_T7.js
17351789
test/language/statements/variable/arguments-strict-list-first-init.js
17361790
test/language/statements/variable/arguments-strict-list-middle-init.js
1791+
test/language/statements/variable/dstr/ary-ptrn-elem-id-static-init-await-invalid.js
17371792
test/language/statements/variable/dstr/ary-ptrn-rest-init-ary.js
17381793
test/language/statements/variable/dstr/ary-ptrn-rest-init-id.js
17391794
test/language/statements/variable/dstr/ary-ptrn-rest-init-obj.js
17401795
test/language/statements/variable/dstr/ary-ptrn-rest-not-final-ary.js
17411796
test/language/statements/variable/dstr/ary-ptrn-rest-not-final-id.js
17421797
test/language/statements/variable/dstr/ary-ptrn-rest-not-final-obj.js
1798+
test/language/statements/variable/dstr/obj-ptrn-elem-id-static-init-await-invalid.js
17431799
test/language/statements/variable/eval-strict-list-final-init.js
1800+
test/language/statements/variable/static-init-await-binding-invalid.js
17441801
test/language/statements/while/decl-fun.js
17451802
test/language/statements/while/decl-gen.js
17461803
test/language/statements/with/decl-gen.js

compat/upstream.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ config_sha256 = "79c64748ff1182baf5433d0a8378e3666738a785d02faf71f0d459ed42ae897
1919
test_count = 53125
2020
metadata_records_sha256 = "a37219960819e56a5c5c1723d31d6a33095c778bf5347385187fde96f927a06a"
2121
oxide_profile = "compat/test262-oxide.conf"
22-
oxide_profile_sha256 = "b293733044da0a165df9d7bde2dbb069baf7ffdc3b2343ce0e5ccc5cdeddf95f"
22+
oxide_profile_sha256 = "1b5a0b55f4faaae1a3c661d8151054c200f59ec65724e255ac02915bf5b4d547"
2323
expected_errors = "test262_errors.txt"
2424

2525
[test262_es5]

0 commit comments

Comments
 (0)