diff --git a/js/src/frontend/Parser.cpp b/js/src/frontend/Parser.cpp index 7f8230bf55df..e9e3b969983c 100644 --- a/js/src/frontend/Parser.cpp +++ b/js/src/frontend/Parser.cpp @@ -7070,7 +7070,7 @@ GeneralParser::classDefinition( } if (numFieldKeys > 0) { - if (!noteDeclaredName(cx_->names().dotFieldKeys, DeclarationKind::Var, + if (!noteDeclaredName(cx_->names().dotFieldKeys, DeclarationKind::Let, namePos)) { return null(); } diff --git a/js/src/jit-test/tests/fields/bug1540798.js b/js/src/jit-test/tests/fields/bug1540798.js index 03b904022bad..970cf1b9867d 100644 --- a/js/src/jit-test/tests/fields/bug1540798.js +++ b/js/src/jit-test/tests/fields/bug1540798.js @@ -1,3 +1,5 @@ +// |jit-test| --enable-experimental-fields + try { evaluate(` class constructor { get; } // Long line is long // Long line XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX diff --git a/js/src/jit-test/tests/fields/bug1547133.js b/js/src/jit-test/tests/fields/bug1547133.js new file mode 100644 index 000000000000..a3c5df85aa0d --- /dev/null +++ b/js/src/jit-test/tests/fields/bug1547133.js @@ -0,0 +1,5 @@ +// |jit-test| --enable-experimental-fields + +class C47 { + static method(s = class { [y75] = 42; }) {} +} diff --git a/js/src/jit-test/tests/fields/bug1547136.js b/js/src/jit-test/tests/fields/bug1547136.js new file mode 100644 index 000000000000..5db540daceb5 --- /dev/null +++ b/js/src/jit-test/tests/fields/bug1547136.js @@ -0,0 +1,3 @@ +// |jit-test| --enable-experimental-fields + +try {} catch ([ c = class { ["s"] }]) {}