aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2018-06-22 09:20:43 +0200
committerLars Knoll <lars.knoll@qt.io>2018-06-26 10:04:11 +0000
commite9b3bdb96e008060a0e78815a3995015e5e4598d (patch)
treeb3213bc461329723e9fd119a65a5556c12209a21
parent046d1c5db44f409c67244bd70b13077cc03219b2 (diff)
Various fixes for class support
Add support for a default constructor if none is given. Fix support for computed method names, by unifying the handling between static and non static methods. Fix our table generation, so that we write UINT_MAX as the string index for undefined strings and not a reference to the empty string, as that can actually be a valid method name. Add support for getter and setter methods in classes. Change-Id: If52c57d6a67424b0218b86339b95aed9d0351e47 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
-rw-r--r--src/qml/compiler/qv4codegen.cpp6
-rw-r--r--src/qml/compiler/qv4compileddata_p.h20
-rw-r--r--src/qml/compiler/qv4compiler.cpp39
-rw-r--r--src/qml/compiler/qv4compilercontext_p.h8
-rw-r--r--src/qml/jsruntime/qv4functionobject.cpp16
-rw-r--r--src/qml/jsruntime/qv4functionobject_p.h10
-rw-r--r--src/qml/jsruntime/qv4runtime.cpp57
-rw-r--r--tests/auto/qml/ecmascripttests/TestExpectations530
8 files changed, 120 insertions, 566 deletions
diff --git a/src/qml/compiler/qv4codegen.cpp b/src/qml/compiler/qv4codegen.cpp
index 2a7c491bd6..cab99b0c21 100644
--- a/src/qml/compiler/qv4codegen.cpp
+++ b/src/qml/compiler/qv4codegen.cpp
@@ -823,8 +823,7 @@ bool Codegen::visit(VariableDeclarationList *)
bool Codegen::visit(ClassExpression *ast)
{
Compiler::Class jsClass;
- jsClass.name = ast->name.toString();
- registerString(jsClass.name);
+ jsClass.nameIndex = registerString(ast->name.toString());
ClassElementList *constructor = nullptr;
int nComputedNames = 0;
@@ -844,12 +843,13 @@ bool Codegen::visit(ClassExpression *ast)
++nStaticComputedNames;
}
QString name = p->name->asString();
+ uint nameIndex = cname ? UINT_MAX : registerString(name);
Compiler::Class::Method::Type type = Compiler::Class::Method::Regular;
if (p->type == PatternProperty::Getter)
type = Compiler::Class::Method::Getter;
else if (p->type == PatternProperty::Setter)
type = Compiler::Class::Method::Setter;
- Compiler::Class::Method m{ name, type, defineFunction(name, f, f->formals, f->body)};
+ Compiler::Class::Method m{ nameIndex, type, static_cast<uint>(defineFunction(name, f, f->formals, f->body)) };
if (member->isStatic) {
if (name == QStringLiteral("prototype")) {
diff --git a/src/qml/compiler/qv4compileddata_p.h b/src/qml/compiler/qv4compileddata_p.h
index 6d81db23e0..46efe09924 100644
--- a/src/qml/compiler/qv4compileddata_p.h
+++ b/src/qml/compiler/qv4compileddata_p.h
@@ -317,6 +317,18 @@ struct Function
};
static_assert(sizeof(Function) == 80, "Function structure needs to have the expected size to be binary compatible on disk when generated by host compiler and loaded by target");
+struct Method {
+ enum Type {
+ Regular,
+ Getter,
+ Setter
+ };
+
+ quint32_le name;
+ quint32_le type;
+ quint32_le function;
+};
+
struct Class
{
quint32_le nameIndex;
@@ -324,14 +336,12 @@ struct Class
quint32_le constructorFunction;
quint32_le nStaticMethods;
quint32_le nMethods;
- quint32_le nameTableOffset;
quint32_le methodTableOffset;
- const quint32_le *nameTable() const { return reinterpret_cast<const quint32_le *>(reinterpret_cast<const char *>(this) + nameTableOffset); }
- const quint32_le *methodTable() const { return reinterpret_cast<const quint32_le *>(reinterpret_cast<const char *>(this) + methodTableOffset); }
+ const Method *methodTable() const { return reinterpret_cast<const Method *>(reinterpret_cast<const char *>(this) + methodTableOffset); }
static int calculateSize(int nStaticMethods, int nMethods) {
- int trailingData = (nStaticMethods + nMethods) * 2 * sizeof(quint32);
+ int trailingData = (nStaticMethods + nMethods) * sizeof(Method);
size_t size = align(sizeof(Class) + trailingData);
Q_ASSERT(size < INT_MAX);
return int(size);
@@ -341,7 +351,7 @@ struct Class
return (a + 7) & ~size_t(7);
}
};
-static_assert(sizeof(Class) == 28, "Function structure needs to have the expected size to be binary compatible on disk when generated by host compiler and loaded by target");
+static_assert(sizeof(Class) == 24, "Function structure needs to have the expected size to be binary compatible on disk when generated by host compiler and loaded by target");
// Qml data structures
diff --git a/src/qml/compiler/qv4compiler.cpp b/src/qml/compiler/qv4compiler.cpp
index eb38ba564d..f1afad4965 100644
--- a/src/qml/compiler/qv4compiler.cpp
+++ b/src/qml/compiler/qv4compiler.cpp
@@ -396,6 +396,10 @@ void QV4::Compiler::JSUnitGenerator::writeFunction(char *f, QV4::Compiler::Conte
memcpy(f + function->codeOffset, irFunction->code.constData(), irFunction->code.size());
}
+static_assert(int(QV4::Compiler::Class::Method::Regular) == int(QV4::CompiledData::Method::Regular), "Incompatible layout");
+static_assert(int(QV4::Compiler::Class::Method::Getter) == int(QV4::CompiledData::Method::Getter), "Incompatible layout");
+static_assert(int(QV4::Compiler::Class::Method::Setter) == int(QV4::CompiledData::Method::Setter), "Incompatible layout");
+
void QV4::Compiler::JSUnitGenerator::writeClass(char *b, const QV4::Compiler::Class &c)
{
QV4::CompiledData::Class *cls = reinterpret_cast<QV4::CompiledData::Class *>(b);
@@ -406,31 +410,40 @@ void QV4::Compiler::JSUnitGenerator::writeClass(char *b, const QV4::Compiler::Cl
allMethods += c.methods;
cls->constructorFunction = c.constructorIndex;
- cls->nameIndex = getStringId(c.name);
+ cls->nameIndex = c.nameIndex;
cls->nMethods = c.methods.size();
cls->nStaticMethods = c.staticMethods.size();
- cls->nameTableOffset = currentOffset;
- quint32_le *names = reinterpret_cast<quint32_le *>(b + currentOffset);
- currentOffset += allMethods.size() * sizeof(quint32);
cls->methodTableOffset = currentOffset;
- quint32_le *methods = reinterpret_cast<quint32_le *>(b + currentOffset);
- currentOffset += cls->nMethods * sizeof(quint32);
+ CompiledData::Method *method = reinterpret_cast<CompiledData::Method *>(b + currentOffset);
// write methods
for (int i = 0; i < allMethods.size(); ++i) {
- names[i] = getStringId(allMethods.at(i).name);
- methods[i] = allMethods.at(i).functionIndex;
- // ### fix getter and setter methods
+ method->name = allMethods.at(i).nameIndex;
+ method->type = allMethods.at(i).type;
+ method->function = allMethods.at(i).functionIndex;
+ ++method;
}
static const bool showCode = qEnvironmentVariableIsSet("QV4_SHOW_BYTECODE");
if (showCode) {
qDebug() << "=== Class " << stringForIndex(cls->nameIndex) << "static methods" << cls->nStaticMethods << "methods" << cls->nMethods;
qDebug() << " constructor:" << cls->constructorFunction;
- for (uint i = 0; i < cls->nStaticMethods; ++i)
- qDebug() << " " << i << ": static" << stringForIndex(cls->nameTable()[i]);
- for (uint i = 0; i < cls->nMethods; ++i)
- qDebug() << " " << i << ": " << stringForIndex(cls->nameTable()[cls->nStaticMethods + i]);
+ const char *staticString = ": static ";
+ for (uint i = 0; i < cls->nStaticMethods + cls->nMethods; ++i) {
+ if (i == cls->nStaticMethods)
+ staticString = ": ";
+ const char *type;
+ switch (cls->methodTable()[i].type) {
+ case CompiledData::Method::Getter:
+ type = "get "; break;
+ case CompiledData::Method::Setter:
+ type = "set "; break;
+ default:
+ type = "";
+
+ }
+ qDebug() << " " << i << staticString << type << stringForIndex(cls->methodTable()[i].name) << cls->methodTable()[i].function;
+ }
qDebug();
}
}
diff --git a/src/qml/compiler/qv4compilercontext_p.h b/src/qml/compiler/qv4compilercontext_p.h
index 9444173840..52c3fc5b05 100644
--- a/src/qml/compiler/qv4compilercontext_p.h
+++ b/src/qml/compiler/qv4compilercontext_p.h
@@ -86,13 +86,13 @@ struct Class {
Getter,
Setter
};
- QString name;
+ uint nameIndex;
Type type;
- int functionIndex;
+ uint functionIndex;
};
- QString name;
- int constructorIndex = -1;
+ uint nameIndex;
+ uint constructorIndex = UINT_MAX;
QVector<Method> staticMethods;
QVector<Method> methods;
};
diff --git a/src/qml/jsruntime/qv4functionobject.cpp b/src/qml/jsruntime/qv4functionobject.cpp
index 7fcb1c3536..589ed8fded 100644
--- a/src/qml/jsruntime/qv4functionobject.cpp
+++ b/src/qml/jsruntime/qv4functionobject.cpp
@@ -502,6 +502,22 @@ ReturnedValue ConstructorFunction::call(const FunctionObject *f, const Value *,
return f->engine()->throwTypeError(QStringLiteral("Cannot call a class constructor without |new|"));
}
+DEFINE_OBJECT_VTABLE(DefaultClassConstructorFunction);
+
+ReturnedValue DefaultClassConstructorFunction::callAsConstructor(const FunctionObject *f, const Value *, int)
+{
+ Scope scope(f);
+ ScopedObject proto(scope, f->get(scope.engine->id_prototype()));
+ ScopedObject c(scope, scope.engine->newObject());
+ c->setPrototypeUnchecked(proto);
+ return c->asReturnedValue();
+}
+
+ReturnedValue DefaultClassConstructorFunction::call(const FunctionObject *f, const Value *, const Value *, int)
+{
+ return f->engine()->throwTypeError(QStringLiteral("Cannot call a class constructor without |new|"));
+}
+
DEFINE_OBJECT_VTABLE(IndexedBuiltinFunction);
DEFINE_OBJECT_VTABLE(BoundFunction);
diff --git a/src/qml/jsruntime/qv4functionobject_p.h b/src/qml/jsruntime/qv4functionobject_p.h
index 1e7df2c27e..7a7c86a6c3 100644
--- a/src/qml/jsruntime/qv4functionobject_p.h
+++ b/src/qml/jsruntime/qv4functionobject_p.h
@@ -124,6 +124,10 @@ struct ConstructorFunction : ScriptFunction
{
};
+struct DefaultClassConstructorFunction : FunctionObject
+{
+};
+
#define BoundFunctionMembers(class, Member) \
Member(class, Pointer, FunctionObject *, target) \
Member(class, HeapValue, HeapValue, boundThis) \
@@ -243,6 +247,12 @@ struct ConstructorFunction : ScriptFunction {
static ReturnedValue call(const FunctionObject *f, const Value *thisObject, const Value *argv, int argc);
};
+struct DefaultClassConstructorFunction : FunctionObject {
+ V4_OBJECT2(DefaultClassConstructorFunction, FunctionObject)
+ static ReturnedValue callAsConstructor(const FunctionObject *, const Value *argv, int argc);
+ static ReturnedValue call(const FunctionObject *f, const Value *thisObject, const Value *argv, int argc);
+};
+
struct BoundFunction: FunctionObject {
V4_OBJECT2(BoundFunction, FunctionObject)
diff --git a/src/qml/jsruntime/qv4runtime.cpp b/src/qml/jsruntime/qv4runtime.cpp
index bae8a9d332..d7555ae6cc 100644
--- a/src/qml/jsruntime/qv4runtime.cpp
+++ b/src/qml/jsruntime/qv4runtime.cpp
@@ -1493,7 +1493,9 @@ ReturnedValue Runtime::method_createClass(ExecutionEngine *engine, int classInde
}
Scope scope(engine);
- ScopedString name(scope, unit->runtimeStrings[cls->nameIndex]);
+ ScopedString name(scope);
+ if (cls->nameIndex != UINT_MAX)
+ name = unit->runtimeStrings[cls->nameIndex];
// ### fix heritage
ScopedObject protoParent(scope, engine->objectPrototype());
ScopedObject constructorParent(scope, engine->functionPrototype());
@@ -1508,36 +1510,53 @@ ReturnedValue Runtime::method_createClass(ExecutionEngine *engine, int classInde
Q_ASSERT(f);
constructor = FunctionObject::createConstructorFunction(current, f)->asReturnedValue();
} else {
- // ####
- return engine->throwTypeError(QStringLiteral("default constructor not implemented"));
+ constructor = engine->memoryManager->allocate<DefaultClassConstructorFunction>();
}
constructor->setPrototypeUnchecked(constructorParent);
constructor->defineDefaultProperty(engine->id_prototype(), proto);
proto->defineDefaultProperty(engine->id_constructor(), constructor);
+ ScopedObject receiver(scope, *constructor);
+ ScopedStringOrSymbol propertyName(scope);
ScopedFunctionObject function(scope);
- for (uint i = 0; i < cls->nStaticMethods; ++i) {
- name = unit->runtimeStrings[cls->nameTable()[i]];
- QV4::Function *f = unit->runtimeFunctions[cls->methodTable()[i]];
- Q_ASSERT(f);
- function = FunctionObject::createScriptFunction(current, f)->asReturnedValue();
- constructor->defineDefaultProperty(name, function);
- }
-
- for (uint i = 0; i < cls->nMethods; ++i) {
- name = unit->runtimeStrings[cls->nameTable()[i + cls->nStaticMethods]];
- name->makeIdentifier();
- if (name->identifier() == engine->id_empty()->identifier()) {
- name = computedNames->toPropertyKey(engine);
+ ScopedProperty property(scope);
+ const CompiledData::Method *methods = cls->methodTable();
+ for (uint i = 0; i < cls->nStaticMethods + cls->nMethods; ++i) {
+ if (i == cls->nStaticMethods)
+ receiver = proto;
+ if (methods[i].name == UINT_MAX) {
+ propertyName = computedNames->toPropertyKey(engine);
if (engine->hasException)
return Encode::undefined();
++computedNames;
+ } else {
+ propertyName = unit->runtimeStrings[methods[i].name];
}
- QV4::Function *f = unit->runtimeFunctions[cls->methodTable()[i + cls->nStaticMethods]];
+ Identifier id = propertyName->toPropertyKey();
+ QV4::Function *f = unit->runtimeFunctions[methods[i].function];
Q_ASSERT(f);
- function = FunctionObject::createScriptFunction(current, f)->asReturnedValue();
- proto->defineDefaultProperty(name, function);
+ function = FunctionObject::createScriptFunction(current, f);
+ Q_ASSERT(function);
+ PropertyAttributes attributes;
+ switch (methods[i].type) {
+ case CompiledData::Method::Getter:
+ property->setGetter(function);
+ property->set = Primitive::emptyValue();
+ attributes = Attr_Accessor|Attr_NotEnumerable;
+ break;
+ case CompiledData::Method::Setter:
+ property->value = Primitive::emptyValue();
+ property->setSetter(function);
+ attributes = Attr_Accessor|Attr_NotEnumerable;
+ break;
+ default: // Regular
+ property->value = function;
+ property->set = Primitive::emptyValue();
+ attributes = Attr_Data|Attr_NotEnumerable;
+ break;
+ }
+ receiver->defineOwnProperty(id, property, attributes);
}
return constructor->asReturnedValue();
diff --git a/tests/auto/qml/ecmascripttests/TestExpectations b/tests/auto/qml/ecmascripttests/TestExpectations
index 9c4ed40c9f..d03a2913b4 100644
--- a/tests/auto/qml/ecmascripttests/TestExpectations
+++ b/tests/auto/qml/ecmascripttests/TestExpectations
@@ -413,7 +413,6 @@ built-ins/Error/prototype/S15.11.4_A2.js fails
built-ins/Function/call-bind-this-realm-undef.js fails
built-ins/Function/call-bind-this-realm-value.js fails
built-ins/Function/internals/Call/class-ctor-realm.js fails
-built-ins/Function/internals/Call/class-ctor.js fails
built-ins/Function/internals/Construct/base-ctor-revoked-proxy-realm.js fails
built-ins/Function/internals/Construct/base-ctor-revoked-proxy.js fails
built-ins/Function/internals/Construct/derived-return-val-realm.js fails
@@ -1921,14 +1920,6 @@ language/arguments-object/cls-decl-gen-meth-static-args-trailing-comma-multiple.
language/arguments-object/cls-decl-gen-meth-static-args-trailing-comma-null.js fails
language/arguments-object/cls-decl-gen-meth-static-args-trailing-comma-single-args.js fails
language/arguments-object/cls-decl-gen-meth-static-args-trailing-comma-undefined.js fails
-language/arguments-object/cls-decl-meth-args-trailing-comma-multiple.js fails
-language/arguments-object/cls-decl-meth-args-trailing-comma-null.js fails
-language/arguments-object/cls-decl-meth-args-trailing-comma-single-args.js fails
-language/arguments-object/cls-decl-meth-args-trailing-comma-undefined.js fails
-language/arguments-object/cls-decl-meth-static-args-trailing-comma-multiple.js fails
-language/arguments-object/cls-decl-meth-static-args-trailing-comma-null.js fails
-language/arguments-object/cls-decl-meth-static-args-trailing-comma-single-args.js fails
-language/arguments-object/cls-decl-meth-static-args-trailing-comma-undefined.js fails
language/arguments-object/cls-expr-gen-meth-args-trailing-comma-multiple.js fails
language/arguments-object/cls-expr-gen-meth-args-trailing-comma-null.js fails
language/arguments-object/cls-expr-gen-meth-args-trailing-comma-single-args.js fails
@@ -1969,32 +1960,16 @@ language/arguments-object/mapped/nonconfigurable-nonenumerable-nonwritable-descr
language/arguments-object/mapped/nonconfigurable-nonwritable-descriptors-set-by-arguments.js sloppyFails
language/arguments-object/mapped/nonconfigurable-nonwritable-descriptors-set-by-param.js sloppyFails
language/arguments-object/mapped/nonwritable-nonconfigurable-descriptors-set-by-arguments.js sloppyFails
-language/computed-property-names/class/accessor/getter-duplicates.js fails
-language/computed-property-names/class/accessor/getter.js fails
-language/computed-property-names/class/accessor/setter-duplicates.js fails
-language/computed-property-names/class/accessor/setter.js fails
-language/computed-property-names/class/method/constructor-can-be-generator.js fails
-language/computed-property-names/class/method/constructor-can-be-getter.js fails
-language/computed-property-names/class/method/constructor-can-be-setter.js fails
-language/computed-property-names/class/method/constructor-duplicate-3.js fails
-language/computed-property-names/class/method/constructor.js fails
-language/computed-property-names/class/method/generator.js fails
-language/computed-property-names/class/method/number.js fails
-language/computed-property-names/class/method/string.js fails
-language/computed-property-names/class/method/symbol.js fails
-language/computed-property-names/class/static/generator-constructor.js fails
-language/computed-property-names/class/static/getter-constructor.js fails
-language/computed-property-names/class/static/method-constructor.js fails
+language/computed-property-names/class/static/generator-prototype.js fails
+language/computed-property-names/class/static/getter-prototype.js fails
+language/computed-property-names/class/static/method-prototype.js fails
language/computed-property-names/class/static/method-number.js fails
language/computed-property-names/class/static/method-string.js fails
language/computed-property-names/class/static/method-symbol.js fails
-language/computed-property-names/class/static/setter-constructor.js fails
+language/computed-property-names/class/static/setter-prototype.js fails
language/computed-property-names/object/accessor/getter-super.js fails
language/computed-property-names/object/accessor/setter-super.js fails
language/computed-property-names/object/method/super.js fails
-language/computed-property-names/to-name-side-effects/class.js fails
-language/computed-property-names/to-name-side-effects/numbers-class.js fails
-language/eval-code/direct/lex-env-distinct-cls.js fails
language/eval-code/direct/lex-env-no-init-cls.js fails
language/eval-code/direct/lex-env-no-init-const.js fails
language/eval-code/direct/lex-env-no-init-let.js fails
@@ -2010,7 +1985,6 @@ language/eval-code/direct/var-env-global-lex-non-strict.js sloppyFails
language/eval-code/direct/var-env-lower-lex-catch-non-strict.js sloppyFails
language/eval-code/direct/var-env-lower-lex-non-strict.js sloppyFails
language/eval-code/indirect/always-non-strict.js strictFails
-language/eval-code/indirect/lex-env-distinct-cls.js fails
language/eval-code/indirect/lex-env-no-init-cls.js fails
language/eval-code/indirect/lex-env-no-init-const.js fails
language/eval-code/indirect/lex-env-no-init-let.js fails
@@ -2860,9 +2834,7 @@ language/expressions/class/scope-gen-meth-paramsbody-var-close.js fails
language/expressions/class/scope-gen-meth-paramsbody-var-open.js fails
language/expressions/class/scope-meth-paramsbody-var-close.js fails
language/expressions/class/scope-meth-paramsbody-var-open.js fails
-language/expressions/class/scope-name-lex-close.js fails
language/expressions/class/scope-name-lex-open-heritage.js fails
-language/expressions/class/scope-name-lex-open-no-heritage.js fails
language/expressions/class/scope-setter-paramsbody-var-close.js fails
language/expressions/class/scope-setter-paramsbody-var-open.js fails
language/expressions/class/scope-static-gen-meth-paramsbody-var-close.js fails
@@ -3228,9 +3200,7 @@ language/function-code/each-param-has-own-non-shared-eval-scope.js sloppyFails
language/function-code/each-param-has-own-scope.js sloppyFails
language/function-code/eval-param-env-with-computed-key.js sloppyFails
language/function-code/eval-param-env-with-prop-initializer.js sloppyFails
-language/global-code/decl-lex-deletion.js sloppyFails
language/global-code/decl-lex-restricted-global.js fails
-language/global-code/decl-lex.js fails
language/global-code/script-decl-func-dups.js fails
language/global-code/script-decl-func-err-non-configurable.js fails
language/global-code/script-decl-func-err-non-extensible.js fails
@@ -3319,7 +3289,6 @@ language/module-code/instn-star-props-nrml-indirect_FIXTURE.js fails
language/module-code/instn-star-props-nrml-star_FIXTURE.js fails
language/module-code/instn-star-star-cycle-2_FIXTURE.js fails
language/module-code/instn-star-star-cycle-indirect-x_FIXTURE.js fails
-language/module-code/instn-uniq-env-rec-other_FIXTURE.js fails
language/module-code/namespace/internals/own-property-keys-binding-types_FIXTURE.js fails
language/rest-parameters/with-new-target.js fails
language/statements/async-function/cptn-decl.js fails
@@ -3328,38 +3297,6 @@ language/statements/async-function/evaluation-body.js fails
language/statements/async-function/syntax-declaration-line-terminators-allowed.js fails
language/statements/block/tco-stmt-list.js strictFails
language/statements/block/tco-stmt.js strictFails
-language/statements/class/accessor-name-inst-computed-yield-expr.js fails
-language/statements/class/accessor-name-inst-computed.js fails
-language/statements/class/accessor-name-inst-literal-numeric-binary.js fails
-language/statements/class/accessor-name-inst-literal-numeric-exponent.js fails
-language/statements/class/accessor-name-inst-literal-numeric-hex.js fails
-language/statements/class/accessor-name-inst-literal-numeric-leading-decimal.js fails
-language/statements/class/accessor-name-inst-literal-numeric-non-canonical.js fails
-language/statements/class/accessor-name-inst-literal-numeric-octal.js fails
-language/statements/class/accessor-name-inst-literal-numeric-zero.js fails
-language/statements/class/accessor-name-inst-literal-string-char-escape.js fails
-language/statements/class/accessor-name-inst-literal-string-double-quote.js fails
-language/statements/class/accessor-name-inst-literal-string-empty.js fails
-language/statements/class/accessor-name-inst-literal-string-hex-escape.js fails
-language/statements/class/accessor-name-inst-literal-string-line-continuation.js fails
-language/statements/class/accessor-name-inst-literal-string-single-quote.js fails
-language/statements/class/accessor-name-inst-literal-string-unicode-escape.js fails
-language/statements/class/accessor-name-static-computed-yield-expr.js fails
-language/statements/class/accessor-name-static-computed.js fails
-language/statements/class/accessor-name-static-literal-numeric-binary.js fails
-language/statements/class/accessor-name-static-literal-numeric-exponent.js fails
-language/statements/class/accessor-name-static-literal-numeric-hex.js fails
-language/statements/class/accessor-name-static-literal-numeric-leading-decimal.js fails
-language/statements/class/accessor-name-static-literal-numeric-non-canonical.js fails
-language/statements/class/accessor-name-static-literal-numeric-octal.js fails
-language/statements/class/accessor-name-static-literal-numeric-zero.js fails
-language/statements/class/accessor-name-static-literal-string-char-escape.js fails
-language/statements/class/accessor-name-static-literal-string-double-quote.js fails
-language/statements/class/accessor-name-static-literal-string-empty.js fails
-language/statements/class/accessor-name-static-literal-string-hex-escape.js fails
-language/statements/class/accessor-name-static-literal-string-line-continuation.js fails
-language/statements/class/accessor-name-static-literal-string-single-quote.js fails
-language/statements/class/accessor-name-static-literal-string-unicode-escape.js fails
language/statements/class/arguments/access.js fails
language/statements/class/arguments/default-constructor.js fails
language/statements/class/constructor-inferred-observable-iteration.js fails
@@ -3367,15 +3304,13 @@ language/statements/class/cptn-decl.js fails
language/statements/class/definition/accessors.js fails
language/statements/class/definition/basics.js fails
language/statements/class/definition/class-method-returns-promise.js fails
-language/statements/class/definition/constructor-property.js fails
language/statements/class/definition/fn-name-accessor-get.js fails
language/statements/class/definition/fn-name-accessor-set.js fails
language/statements/class/definition/fn-name-gen-method.js fails
language/statements/class/definition/fn-name-method.js fails
-language/statements/class/definition/fn-name-static-precedence.js fails
+language/statements/class/definition/getters-non-configurable-err.js fails
language/statements/class/definition/getters-prop-desc.js fails
language/statements/class/definition/getters-restricted-ids.js fails
-language/statements/class/definition/implicit-constructor.js fails
language/statements/class/definition/invalid-extends.js strictFails
language/statements/class/definition/methods-gen-no-yield.js fails
language/statements/class/definition/methods-gen-return.js fails
@@ -3389,13 +3324,13 @@ language/statements/class/definition/methods-gen-yield-as-yield-operand.js fails
language/statements/class/definition/methods-gen-yield-newline.js fails
language/statements/class/definition/methods-gen-yield-star-before-newline.js fails
language/statements/class/definition/methods-named-eval-arguments.js fails
-language/statements/class/definition/methods-restricted-properties.js fails
language/statements/class/definition/methods.js fails
language/statements/class/definition/numeric-property-names.js fails
language/statements/class/definition/prototype-getter.js fails
language/statements/class/definition/prototype-property.js fails
language/statements/class/definition/prototype-setter.js fails
language/statements/class/definition/prototype-wiring.js fails
+language/statements/class/definition/setters-non-configurable-err.js fails
language/statements/class/definition/setters-prop-desc.js fails
language/statements/class/definition/setters-restricted-ids.js fails
language/statements/class/definition/side-effects-in-extends.js fails
@@ -3404,7 +3339,6 @@ language/statements/class/definition/this-access-restriction-2.js fails
language/statements/class/definition/this-access-restriction.js fails
language/statements/class/definition/this-check-ordering.js fails
language/statements/class/dstr-gen-meth-ary-init-iter-close.js fails
-language/statements/class/dstr-gen-meth-ary-init-iter-get-err.js fails
language/statements/class/dstr-gen-meth-ary-init-iter-no-close.js fails
language/statements/class/dstr-gen-meth-ary-name-iter-val.js fails
language/statements/class/dstr-gen-meth-ary-ptrn-elem-ary-elem-init.js fails
@@ -3415,7 +3349,6 @@ language/statements/class/dstr-gen-meth-ary-ptrn-elem-ary-empty-init.js fails
language/statements/class/dstr-gen-meth-ary-ptrn-elem-ary-empty-iter.js fails
language/statements/class/dstr-gen-meth-ary-ptrn-elem-ary-rest-init.js fails
language/statements/class/dstr-gen-meth-ary-ptrn-elem-ary-rest-iter.js fails
-language/statements/class/dstr-gen-meth-ary-ptrn-elem-ary-val-null.js fails
language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-init-exhausted.js fails
language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-arrow.js fails
language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-class.js fails
@@ -3424,38 +3357,27 @@ language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-fn.js fail
language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-gen.js fails
language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-init-hole.js fails
language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-init-skipped.js fails
-language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-init-throws.js fails
language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-init-undef.js fails
-language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-init-unresolvable.js fails
language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-iter-complete.js fails
language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-iter-done.js fails
-language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-iter-step-err.js fails
-language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-iter-val-err.js fails
language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-iter-val.js fails
language/statements/class/dstr-gen-meth-ary-ptrn-elem-obj-id-init.js fails
language/statements/class/dstr-gen-meth-ary-ptrn-elem-obj-id.js fails
language/statements/class/dstr-gen-meth-ary-ptrn-elem-obj-prop-id-init.js fails
language/statements/class/dstr-gen-meth-ary-ptrn-elem-obj-prop-id.js fails
-language/statements/class/dstr-gen-meth-ary-ptrn-elem-obj-val-null.js fails
-language/statements/class/dstr-gen-meth-ary-ptrn-elem-obj-val-undef.js fails
language/statements/class/dstr-gen-meth-ary-ptrn-elision-exhausted.js fails
-language/statements/class/dstr-gen-meth-ary-ptrn-elision-step-err.js fails
language/statements/class/dstr-gen-meth-ary-ptrn-elision.js fails
language/statements/class/dstr-gen-meth-ary-ptrn-empty.js fails
language/statements/class/dstr-gen-meth-ary-ptrn-rest-ary-elem.js fails
language/statements/class/dstr-gen-meth-ary-ptrn-rest-ary-elision.js fails
language/statements/class/dstr-gen-meth-ary-ptrn-rest-ary-empty.js fails
language/statements/class/dstr-gen-meth-ary-ptrn-rest-ary-rest.js fails
-language/statements/class/dstr-gen-meth-ary-ptrn-rest-id-elision-next-err.js fails
language/statements/class/dstr-gen-meth-ary-ptrn-rest-id-elision.js fails
language/statements/class/dstr-gen-meth-ary-ptrn-rest-id-exhausted.js fails
-language/statements/class/dstr-gen-meth-ary-ptrn-rest-id-iter-step-err.js fails
-language/statements/class/dstr-gen-meth-ary-ptrn-rest-id-iter-val-err.js fails
language/statements/class/dstr-gen-meth-ary-ptrn-rest-id.js fails
language/statements/class/dstr-gen-meth-ary-ptrn-rest-obj-id.js fails
language/statements/class/dstr-gen-meth-ary-ptrn-rest-obj-prop-id.js fails
language/statements/class/dstr-gen-meth-dflt-ary-init-iter-close.js fails
-language/statements/class/dstr-gen-meth-dflt-ary-init-iter-get-err.js fails
language/statements/class/dstr-gen-meth-dflt-ary-init-iter-no-close.js fails
language/statements/class/dstr-gen-meth-dflt-ary-name-iter-val.js fails
language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-elem-init.js fails
@@ -3466,7 +3388,6 @@ language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-empty-init.js fai
language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-empty-iter.js fails
language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-rest-init.js fails
language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-rest-iter.js fails
-language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-val-null.js fails
language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-exhausted.js fails
language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-arrow.js fails
language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-class.js fails
@@ -3475,98 +3396,61 @@ language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-fn.js
language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-gen.js fails
language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-hole.js fails
language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-skipped.js fails
-language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-throws.js fails
language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-undef.js fails
-language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-unresolvable.js fails
language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-complete.js fails
language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-done.js fails
-language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-step-err.js fails
-language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-val-err.js fails
language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-val.js fails
language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-obj-id-init.js fails
language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-obj-id.js fails
language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-obj-prop-id-init.js fails
language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-obj-prop-id.js fails
-language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-obj-val-null.js fails
-language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-obj-val-undef.js fails
language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elision-exhausted.js fails
-language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elision-step-err.js fails
language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elision.js fails
language/statements/class/dstr-gen-meth-dflt-ary-ptrn-empty.js fails
language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-ary-elem.js fails
language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-ary-elision.js fails
language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-ary-empty.js fails
language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-ary-rest.js fails
-language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-id-elision-next-err.js fails
language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-id-elision.js fails
language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-id-exhausted.js fails
-language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-id-iter-step-err.js fails
-language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-id-iter-val-err.js fails
language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-id.js fails
language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-obj-id.js fails
language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-obj-prop-id.js fails
-language/statements/class/dstr-gen-meth-dflt-obj-init-null.js fails
-language/statements/class/dstr-gen-meth-dflt-obj-init-undefined.js fails
language/statements/class/dstr-gen-meth-dflt-obj-ptrn-empty.js fails
-language/statements/class/dstr-gen-meth-dflt-obj-ptrn-id-get-value-err.js fails
language/statements/class/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-arrow.js fails
language/statements/class/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-class.js fails
language/statements/class/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-cover.js fails
language/statements/class/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-fn.js fails
language/statements/class/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-gen.js fails
language/statements/class/dstr-gen-meth-dflt-obj-ptrn-id-init-skipped.js fails
-language/statements/class/dstr-gen-meth-dflt-obj-ptrn-id-init-throws.js fails
-language/statements/class/dstr-gen-meth-dflt-obj-ptrn-id-init-unresolvable.js fails
language/statements/class/dstr-gen-meth-dflt-obj-ptrn-id-trailing-comma.js fails
-language/statements/class/dstr-gen-meth-dflt-obj-ptrn-list-err.js fails
language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-ary-init.js fails
language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-ary-trailing-comma.js fails
-language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-ary-value-null.js fails
language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-ary.js fails
-language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-eval-err.js fails
-language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-id-get-value-err.js fails
language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-id-init-skipped.js fails
-language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-id-init-throws.js fails
-language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-id-init-unresolvable.js fails
language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-id-init.js fails
language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-id-trailing-comma.js fails
language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-id.js fails
language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-obj-init.js fails
-language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-obj-value-null.js fails
-language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-obj-value-undef.js fails
language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-obj.js fails
-language/statements/class/dstr-gen-meth-obj-init-null.js fails
-language/statements/class/dstr-gen-meth-obj-init-undefined.js fails
language/statements/class/dstr-gen-meth-obj-ptrn-empty.js fails
-language/statements/class/dstr-gen-meth-obj-ptrn-id-get-value-err.js fails
language/statements/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-arrow.js fails
language/statements/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-class.js fails
language/statements/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-cover.js fails
language/statements/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-fn.js fails
language/statements/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-gen.js fails
language/statements/class/dstr-gen-meth-obj-ptrn-id-init-skipped.js fails
-language/statements/class/dstr-gen-meth-obj-ptrn-id-init-throws.js fails
-language/statements/class/dstr-gen-meth-obj-ptrn-id-init-unresolvable.js fails
language/statements/class/dstr-gen-meth-obj-ptrn-id-trailing-comma.js fails
-language/statements/class/dstr-gen-meth-obj-ptrn-list-err.js fails
language/statements/class/dstr-gen-meth-obj-ptrn-prop-ary-init.js fails
language/statements/class/dstr-gen-meth-obj-ptrn-prop-ary-trailing-comma.js fails
-language/statements/class/dstr-gen-meth-obj-ptrn-prop-ary-value-null.js fails
language/statements/class/dstr-gen-meth-obj-ptrn-prop-ary.js fails
-language/statements/class/dstr-gen-meth-obj-ptrn-prop-eval-err.js fails
-language/statements/class/dstr-gen-meth-obj-ptrn-prop-id-get-value-err.js fails
language/statements/class/dstr-gen-meth-obj-ptrn-prop-id-init-skipped.js fails
-language/statements/class/dstr-gen-meth-obj-ptrn-prop-id-init-throws.js fails
-language/statements/class/dstr-gen-meth-obj-ptrn-prop-id-init-unresolvable.js fails
language/statements/class/dstr-gen-meth-obj-ptrn-prop-id-init.js fails
language/statements/class/dstr-gen-meth-obj-ptrn-prop-id-trailing-comma.js fails
language/statements/class/dstr-gen-meth-obj-ptrn-prop-id.js fails
language/statements/class/dstr-gen-meth-obj-ptrn-prop-obj-init.js fails
-language/statements/class/dstr-gen-meth-obj-ptrn-prop-obj-value-null.js fails
-language/statements/class/dstr-gen-meth-obj-ptrn-prop-obj-value-undef.js fails
language/statements/class/dstr-gen-meth-obj-ptrn-prop-obj.js fails
language/statements/class/dstr-gen-meth-static-ary-init-iter-close.js fails
-language/statements/class/dstr-gen-meth-static-ary-init-iter-get-err.js fails
language/statements/class/dstr-gen-meth-static-ary-init-iter-no-close.js fails
language/statements/class/dstr-gen-meth-static-ary-name-iter-val.js fails
language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-ary-elem-init.js fails
@@ -3577,7 +3461,6 @@ language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-ary-empty-init.js f
language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-ary-empty-iter.js fails
language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-ary-rest-init.js fails
language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-ary-rest-iter.js fails
-language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-ary-val-null.js fails
language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-exhausted.js fails
language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-fn-name-arrow.js fails
language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-fn-name-class.js fails
@@ -3586,38 +3469,27 @@ language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-fn-name-fn.
language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-fn-name-gen.js fails
language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-hole.js fails
language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-skipped.js fails
-language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-throws.js fails
language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-undef.js fails
-language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-unresolvable.js fails
language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-iter-complete.js fails
language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-iter-done.js fails
-language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-iter-step-err.js fails
-language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-iter-val-err.js fails
language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-iter-val.js fails
language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-obj-id-init.js fails
language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-obj-id.js fails
language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-obj-prop-id-init.js fails
language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-obj-prop-id.js fails
-language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-obj-val-null.js fails
-language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-obj-val-undef.js fails
language/statements/class/dstr-gen-meth-static-ary-ptrn-elision-exhausted.js fails
-language/statements/class/dstr-gen-meth-static-ary-ptrn-elision-step-err.js fails
language/statements/class/dstr-gen-meth-static-ary-ptrn-elision.js fails
language/statements/class/dstr-gen-meth-static-ary-ptrn-empty.js fails
language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-ary-elem.js fails
language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-ary-elision.js fails
language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-ary-empty.js fails
language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-ary-rest.js fails
-language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-id-elision-next-err.js fails
language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-id-elision.js fails
language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-id-exhausted.js fails
-language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-id-iter-step-err.js fails
-language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-id-iter-val-err.js fails
language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-id.js fails
language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-obj-id.js fails
language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-obj-prop-id.js fails
language/statements/class/dstr-gen-meth-static-dflt-ary-init-iter-close.js fails
-language/statements/class/dstr-gen-meth-static-dflt-ary-init-iter-get-err.js fails
language/statements/class/dstr-gen-meth-static-dflt-ary-init-iter-no-close.js fails
language/statements/class/dstr-gen-meth-static-dflt-ary-name-iter-val.js fails
language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-elem-init.js fails
@@ -3628,7 +3500,6 @@ language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-empty-init
language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-empty-iter.js fails
language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-rest-init.js fails
language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-rest-iter.js fails
-language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-val-null.js fails
language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-exhausted.js fails
language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-arrow.js fails
language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-class.js fails
@@ -3637,421 +3508,68 @@ language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-fn-nam
language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-gen.js fails
language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-hole.js fails
language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-skipped.js fails
-language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-throws.js fails
language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-undef.js fails
-language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-unresolvable.js fails
language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-iter-complete.js fails
language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-iter-done.js fails
-language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-iter-step-err.js fails
-language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-iter-val-err.js fails
language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-iter-val.js fails
language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-obj-id-init.js fails
language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-obj-id.js fails
language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-obj-prop-id-init.js fails
language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-obj-prop-id.js fails
-language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-obj-val-null.js fails
-language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-obj-val-undef.js fails
language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elision-exhausted.js fails
-language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elision-step-err.js fails
language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elision.js fails
language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-empty.js fails
language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-ary-elem.js fails
language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-ary-elision.js fails
language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-ary-empty.js fails
language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-ary-rest.js fails
-language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-id-elision-next-err.js fails
language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-id-elision.js fails
language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-id-exhausted.js fails
-language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-id-iter-step-err.js fails
-language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-id-iter-val-err.js fails
language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-id.js fails
language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-obj-id.js fails
language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-obj-prop-id.js fails
-language/statements/class/dstr-gen-meth-static-dflt-obj-init-null.js fails
-language/statements/class/dstr-gen-meth-static-dflt-obj-init-undefined.js fails
language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-empty.js fails
-language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-id-get-value-err.js fails
language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-fn-name-arrow.js fails
language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-fn-name-class.js fails
language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-fn-name-cover.js fails
language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-fn-name-fn.js fails
language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-fn-name-gen.js fails
language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-skipped.js fails
-language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-throws.js fails
-language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-unresolvable.js fails
language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-id-trailing-comma.js fails
-language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-list-err.js fails
language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-ary-init.js fails
language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-ary-trailing-comma.js fails
-language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-ary-value-null.js fails
language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-ary.js fails
-language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-eval-err.js fails
-language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id-get-value-err.js fails
language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id-init-skipped.js fails
-language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id-init-throws.js fails
-language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id-init-unresolvable.js fails
language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id-init.js fails
language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id-trailing-comma.js fails
language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id.js fails
language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-obj-init.js fails
-language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-obj-value-null.js fails
-language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-obj-value-undef.js fails
language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-obj.js fails
-language/statements/class/dstr-gen-meth-static-obj-init-null.js fails
-language/statements/class/dstr-gen-meth-static-obj-init-undefined.js fails
language/statements/class/dstr-gen-meth-static-obj-ptrn-empty.js fails
-language/statements/class/dstr-gen-meth-static-obj-ptrn-id-get-value-err.js fails
language/statements/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-arrow.js fails
language/statements/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-class.js fails
language/statements/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-cover.js fails
language/statements/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-fn.js fails
language/statements/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-gen.js fails
language/statements/class/dstr-gen-meth-static-obj-ptrn-id-init-skipped.js fails
-language/statements/class/dstr-gen-meth-static-obj-ptrn-id-init-throws.js fails
-language/statements/class/dstr-gen-meth-static-obj-ptrn-id-init-unresolvable.js fails
language/statements/class/dstr-gen-meth-static-obj-ptrn-id-trailing-comma.js fails
-language/statements/class/dstr-gen-meth-static-obj-ptrn-list-err.js fails
language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-ary-init.js fails
language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-ary-trailing-comma.js fails
-language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-ary-value-null.js fails
language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-ary.js fails
-language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-eval-err.js fails
-language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-id-get-value-err.js fails
language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-id-init-skipped.js fails
-language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-id-init-throws.js fails
-language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-id-init-unresolvable.js fails
language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-id-init.js fails
language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-id-trailing-comma.js fails
language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-id.js fails
language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-obj-init.js fails
-language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-obj-value-null.js fails
-language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-obj-value-undef.js fails
language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-obj.js fails
-language/statements/class/dstr-meth-ary-init-iter-close.js fails
-language/statements/class/dstr-meth-ary-init-iter-get-err.js fails
-language/statements/class/dstr-meth-ary-init-iter-no-close.js fails
-language/statements/class/dstr-meth-ary-name-iter-val.js fails
-language/statements/class/dstr-meth-ary-ptrn-elem-ary-elem-init.js fails
-language/statements/class/dstr-meth-ary-ptrn-elem-ary-elem-iter.js fails
-language/statements/class/dstr-meth-ary-ptrn-elem-ary-elision-init.js fails
-language/statements/class/dstr-meth-ary-ptrn-elem-ary-elision-iter.js fails
-language/statements/class/dstr-meth-ary-ptrn-elem-ary-empty-init.js fails
-language/statements/class/dstr-meth-ary-ptrn-elem-ary-empty-iter.js fails
-language/statements/class/dstr-meth-ary-ptrn-elem-ary-rest-init.js fails
-language/statements/class/dstr-meth-ary-ptrn-elem-ary-rest-iter.js fails
-language/statements/class/dstr-meth-ary-ptrn-elem-ary-val-null.js fails
-language/statements/class/dstr-meth-ary-ptrn-elem-id-init-exhausted.js fails
-language/statements/class/dstr-meth-ary-ptrn-elem-id-init-fn-name-arrow.js fails
language/statements/class/dstr-meth-ary-ptrn-elem-id-init-fn-name-class.js fails
-language/statements/class/dstr-meth-ary-ptrn-elem-id-init-fn-name-cover.js fails
-language/statements/class/dstr-meth-ary-ptrn-elem-id-init-fn-name-fn.js fails
-language/statements/class/dstr-meth-ary-ptrn-elem-id-init-fn-name-gen.js fails
-language/statements/class/dstr-meth-ary-ptrn-elem-id-init-hole.js fails
-language/statements/class/dstr-meth-ary-ptrn-elem-id-init-skipped.js fails
-language/statements/class/dstr-meth-ary-ptrn-elem-id-init-throws.js fails
-language/statements/class/dstr-meth-ary-ptrn-elem-id-init-undef.js fails
-language/statements/class/dstr-meth-ary-ptrn-elem-id-init-unresolvable.js fails
-language/statements/class/dstr-meth-ary-ptrn-elem-id-iter-complete.js fails
-language/statements/class/dstr-meth-ary-ptrn-elem-id-iter-done.js fails
-language/statements/class/dstr-meth-ary-ptrn-elem-id-iter-step-err.js fails
-language/statements/class/dstr-meth-ary-ptrn-elem-id-iter-val-err.js fails
-language/statements/class/dstr-meth-ary-ptrn-elem-id-iter-val.js fails
-language/statements/class/dstr-meth-ary-ptrn-elem-obj-id-init.js fails
-language/statements/class/dstr-meth-ary-ptrn-elem-obj-id.js fails
-language/statements/class/dstr-meth-ary-ptrn-elem-obj-prop-id-init.js fails
-language/statements/class/dstr-meth-ary-ptrn-elem-obj-prop-id.js fails
-language/statements/class/dstr-meth-ary-ptrn-elem-obj-val-null.js fails
-language/statements/class/dstr-meth-ary-ptrn-elem-obj-val-undef.js fails
-language/statements/class/dstr-meth-ary-ptrn-elision-exhausted.js fails
-language/statements/class/dstr-meth-ary-ptrn-elision-step-err.js fails
-language/statements/class/dstr-meth-ary-ptrn-elision.js fails
-language/statements/class/dstr-meth-ary-ptrn-empty.js fails
-language/statements/class/dstr-meth-ary-ptrn-rest-ary-elem.js fails
-language/statements/class/dstr-meth-ary-ptrn-rest-ary-elision.js fails
-language/statements/class/dstr-meth-ary-ptrn-rest-ary-empty.js fails
-language/statements/class/dstr-meth-ary-ptrn-rest-ary-rest.js fails
-language/statements/class/dstr-meth-ary-ptrn-rest-id-elision-next-err.js fails
-language/statements/class/dstr-meth-ary-ptrn-rest-id-elision.js fails
-language/statements/class/dstr-meth-ary-ptrn-rest-id-exhausted.js fails
-language/statements/class/dstr-meth-ary-ptrn-rest-id-iter-step-err.js fails
-language/statements/class/dstr-meth-ary-ptrn-rest-id-iter-val-err.js fails
-language/statements/class/dstr-meth-ary-ptrn-rest-id.js fails
-language/statements/class/dstr-meth-ary-ptrn-rest-obj-id.js fails
-language/statements/class/dstr-meth-ary-ptrn-rest-obj-prop-id.js fails
-language/statements/class/dstr-meth-dflt-ary-init-iter-close.js fails
-language/statements/class/dstr-meth-dflt-ary-init-iter-get-err.js fails
-language/statements/class/dstr-meth-dflt-ary-init-iter-no-close.js fails
-language/statements/class/dstr-meth-dflt-ary-name-iter-val.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-elem-ary-elem-init.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-elem-ary-elem-iter.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-elem-ary-elision-init.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-elem-ary-elision-iter.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-elem-ary-empty-init.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-elem-ary-empty-iter.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-elem-ary-rest-init.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-elem-ary-rest-iter.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-elem-ary-val-null.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-elem-id-init-exhausted.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-elem-id-init-fn-name-arrow.js fails
language/statements/class/dstr-meth-dflt-ary-ptrn-elem-id-init-fn-name-class.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-elem-id-init-fn-name-cover.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-elem-id-init-fn-name-fn.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-elem-id-init-fn-name-gen.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-elem-id-init-hole.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-elem-id-init-skipped.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-elem-id-init-throws.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-elem-id-init-undef.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-elem-id-init-unresolvable.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-elem-id-iter-complete.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-elem-id-iter-done.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-elem-id-iter-step-err.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-elem-id-iter-val-err.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-elem-id-iter-val.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-elem-obj-id-init.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-elem-obj-id.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-elem-obj-prop-id-init.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-elem-obj-prop-id.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-elem-obj-val-null.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-elem-obj-val-undef.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-elision-exhausted.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-elision-step-err.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-elision.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-empty.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-rest-ary-elem.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-rest-ary-elision.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-rest-ary-empty.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-rest-ary-rest.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-rest-id-elision-next-err.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-rest-id-elision.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-rest-id-exhausted.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-rest-id-iter-step-err.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-rest-id-iter-val-err.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-rest-id.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-rest-obj-id.js fails
-language/statements/class/dstr-meth-dflt-ary-ptrn-rest-obj-prop-id.js fails
-language/statements/class/dstr-meth-dflt-obj-init-null.js fails
-language/statements/class/dstr-meth-dflt-obj-init-undefined.js fails
-language/statements/class/dstr-meth-dflt-obj-ptrn-empty.js fails
-language/statements/class/dstr-meth-dflt-obj-ptrn-id-get-value-err.js fails
-language/statements/class/dstr-meth-dflt-obj-ptrn-id-init-fn-name-arrow.js fails
language/statements/class/dstr-meth-dflt-obj-ptrn-id-init-fn-name-class.js fails
-language/statements/class/dstr-meth-dflt-obj-ptrn-id-init-fn-name-cover.js fails
-language/statements/class/dstr-meth-dflt-obj-ptrn-id-init-fn-name-fn.js fails
-language/statements/class/dstr-meth-dflt-obj-ptrn-id-init-fn-name-gen.js fails
-language/statements/class/dstr-meth-dflt-obj-ptrn-id-init-skipped.js fails
-language/statements/class/dstr-meth-dflt-obj-ptrn-id-init-throws.js fails
-language/statements/class/dstr-meth-dflt-obj-ptrn-id-init-unresolvable.js fails
-language/statements/class/dstr-meth-dflt-obj-ptrn-id-trailing-comma.js fails
-language/statements/class/dstr-meth-dflt-obj-ptrn-list-err.js fails
-language/statements/class/dstr-meth-dflt-obj-ptrn-prop-ary-init.js fails
-language/statements/class/dstr-meth-dflt-obj-ptrn-prop-ary-trailing-comma.js fails
-language/statements/class/dstr-meth-dflt-obj-ptrn-prop-ary-value-null.js fails
-language/statements/class/dstr-meth-dflt-obj-ptrn-prop-ary.js fails
-language/statements/class/dstr-meth-dflt-obj-ptrn-prop-eval-err.js fails
-language/statements/class/dstr-meth-dflt-obj-ptrn-prop-id-get-value-err.js fails
-language/statements/class/dstr-meth-dflt-obj-ptrn-prop-id-init-skipped.js fails
-language/statements/class/dstr-meth-dflt-obj-ptrn-prop-id-init-throws.js fails
-language/statements/class/dstr-meth-dflt-obj-ptrn-prop-id-init-unresolvable.js fails
-language/statements/class/dstr-meth-dflt-obj-ptrn-prop-id-init.js fails
-language/statements/class/dstr-meth-dflt-obj-ptrn-prop-id-trailing-comma.js fails
-language/statements/class/dstr-meth-dflt-obj-ptrn-prop-id.js fails
-language/statements/class/dstr-meth-dflt-obj-ptrn-prop-obj-init.js fails
-language/statements/class/dstr-meth-dflt-obj-ptrn-prop-obj-value-null.js fails
-language/statements/class/dstr-meth-dflt-obj-ptrn-prop-obj-value-undef.js fails
-language/statements/class/dstr-meth-dflt-obj-ptrn-prop-obj.js fails
-language/statements/class/dstr-meth-obj-init-null.js fails
-language/statements/class/dstr-meth-obj-init-undefined.js fails
-language/statements/class/dstr-meth-obj-ptrn-empty.js fails
-language/statements/class/dstr-meth-obj-ptrn-id-get-value-err.js fails
-language/statements/class/dstr-meth-obj-ptrn-id-init-fn-name-arrow.js fails
language/statements/class/dstr-meth-obj-ptrn-id-init-fn-name-class.js fails
-language/statements/class/dstr-meth-obj-ptrn-id-init-fn-name-cover.js fails
-language/statements/class/dstr-meth-obj-ptrn-id-init-fn-name-fn.js fails
-language/statements/class/dstr-meth-obj-ptrn-id-init-fn-name-gen.js fails
-language/statements/class/dstr-meth-obj-ptrn-id-init-skipped.js fails
-language/statements/class/dstr-meth-obj-ptrn-id-init-throws.js fails
-language/statements/class/dstr-meth-obj-ptrn-id-init-unresolvable.js fails
-language/statements/class/dstr-meth-obj-ptrn-id-trailing-comma.js fails
-language/statements/class/dstr-meth-obj-ptrn-list-err.js fails
-language/statements/class/dstr-meth-obj-ptrn-prop-ary-init.js fails
-language/statements/class/dstr-meth-obj-ptrn-prop-ary-trailing-comma.js fails
-language/statements/class/dstr-meth-obj-ptrn-prop-ary-value-null.js fails
-language/statements/class/dstr-meth-obj-ptrn-prop-ary.js fails
-language/statements/class/dstr-meth-obj-ptrn-prop-eval-err.js fails
-language/statements/class/dstr-meth-obj-ptrn-prop-id-get-value-err.js fails
-language/statements/class/dstr-meth-obj-ptrn-prop-id-init-skipped.js fails
-language/statements/class/dstr-meth-obj-ptrn-prop-id-init-throws.js fails
-language/statements/class/dstr-meth-obj-ptrn-prop-id-init-unresolvable.js fails
-language/statements/class/dstr-meth-obj-ptrn-prop-id-init.js fails
-language/statements/class/dstr-meth-obj-ptrn-prop-id-trailing-comma.js fails
-language/statements/class/dstr-meth-obj-ptrn-prop-id.js fails
-language/statements/class/dstr-meth-obj-ptrn-prop-obj-init.js fails
-language/statements/class/dstr-meth-obj-ptrn-prop-obj-value-null.js fails
-language/statements/class/dstr-meth-obj-ptrn-prop-obj-value-undef.js fails
-language/statements/class/dstr-meth-obj-ptrn-prop-obj.js fails
-language/statements/class/dstr-meth-static-ary-init-iter-close.js fails
-language/statements/class/dstr-meth-static-ary-init-iter-get-err.js fails
-language/statements/class/dstr-meth-static-ary-init-iter-no-close.js fails
-language/statements/class/dstr-meth-static-ary-name-iter-val.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-elem-ary-elem-init.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-elem-ary-elem-iter.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-elem-ary-elision-init.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-elem-ary-elision-iter.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-elem-ary-empty-init.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-elem-ary-empty-iter.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-elem-ary-rest-init.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-elem-ary-rest-iter.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-elem-ary-val-null.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-elem-id-init-exhausted.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-elem-id-init-fn-name-arrow.js fails
language/statements/class/dstr-meth-static-ary-ptrn-elem-id-init-fn-name-class.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-elem-id-init-fn-name-cover.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-elem-id-init-fn-name-fn.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-elem-id-init-fn-name-gen.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-elem-id-init-hole.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-elem-id-init-skipped.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-elem-id-init-throws.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-elem-id-init-undef.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-elem-id-init-unresolvable.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-elem-id-iter-complete.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-elem-id-iter-done.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-elem-id-iter-step-err.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-elem-id-iter-val-err.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-elem-id-iter-val.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-elem-obj-id-init.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-elem-obj-id.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-elem-obj-prop-id-init.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-elem-obj-prop-id.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-elem-obj-val-null.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-elem-obj-val-undef.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-elision-exhausted.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-elision-step-err.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-elision.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-empty.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-rest-ary-elem.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-rest-ary-elision.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-rest-ary-empty.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-rest-ary-rest.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-rest-id-elision-next-err.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-rest-id-elision.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-rest-id-exhausted.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-rest-id-iter-step-err.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-rest-id-iter-val-err.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-rest-id.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-rest-obj-id.js fails
-language/statements/class/dstr-meth-static-ary-ptrn-rest-obj-prop-id.js fails
-language/statements/class/dstr-meth-static-dflt-ary-init-iter-close.js fails
-language/statements/class/dstr-meth-static-dflt-ary-init-iter-get-err.js fails
-language/statements/class/dstr-meth-static-dflt-ary-init-iter-no-close.js fails
-language/statements/class/dstr-meth-static-dflt-ary-name-iter-val.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-elem-ary-elem-init.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-elem-ary-elem-iter.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-elem-ary-elision-init.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-elem-ary-elision-iter.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-elem-ary-empty-init.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-elem-ary-empty-iter.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-elem-ary-rest-init.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-elem-ary-rest-iter.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-elem-ary-val-null.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-elem-id-init-exhausted.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-arrow.js fails
language/statements/class/dstr-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-class.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-cover.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-fn.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-gen.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-elem-id-init-hole.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-elem-id-init-skipped.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-elem-id-init-throws.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-elem-id-init-undef.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-elem-id-init-unresolvable.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-elem-id-iter-complete.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-elem-id-iter-done.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-elem-id-iter-step-err.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-elem-id-iter-val-err.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-elem-id-iter-val.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-elem-obj-id-init.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-elem-obj-id.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-elem-obj-prop-id-init.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-elem-obj-prop-id.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-elem-obj-val-null.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-elem-obj-val-undef.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-elision-exhausted.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-elision-step-err.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-elision.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-empty.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-ary-elem.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-ary-elision.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-ary-empty.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-ary-rest.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-id-elision-next-err.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-id-elision.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-id-exhausted.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-id-iter-step-err.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-id-iter-val-err.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-id.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-obj-id.js fails
-language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-obj-prop-id.js fails
-language/statements/class/dstr-meth-static-dflt-obj-init-null.js fails
-language/statements/class/dstr-meth-static-dflt-obj-init-undefined.js fails
-language/statements/class/dstr-meth-static-dflt-obj-ptrn-empty.js fails
-language/statements/class/dstr-meth-static-dflt-obj-ptrn-id-get-value-err.js fails
-language/statements/class/dstr-meth-static-dflt-obj-ptrn-id-init-fn-name-arrow.js fails
language/statements/class/dstr-meth-static-dflt-obj-ptrn-id-init-fn-name-class.js fails
-language/statements/class/dstr-meth-static-dflt-obj-ptrn-id-init-fn-name-cover.js fails
-language/statements/class/dstr-meth-static-dflt-obj-ptrn-id-init-fn-name-fn.js fails
-language/statements/class/dstr-meth-static-dflt-obj-ptrn-id-init-fn-name-gen.js fails
-language/statements/class/dstr-meth-static-dflt-obj-ptrn-id-init-skipped.js fails
-language/statements/class/dstr-meth-static-dflt-obj-ptrn-id-init-throws.js fails
-language/statements/class/dstr-meth-static-dflt-obj-ptrn-id-init-unresolvable.js fails
-language/statements/class/dstr-meth-static-dflt-obj-ptrn-id-trailing-comma.js fails
-language/statements/class/dstr-meth-static-dflt-obj-ptrn-list-err.js fails
-language/statements/class/dstr-meth-static-dflt-obj-ptrn-prop-ary-init.js fails
-language/statements/class/dstr-meth-static-dflt-obj-ptrn-prop-ary-trailing-comma.js fails
-language/statements/class/dstr-meth-static-dflt-obj-ptrn-prop-ary-value-null.js fails
-language/statements/class/dstr-meth-static-dflt-obj-ptrn-prop-ary.js fails
-language/statements/class/dstr-meth-static-dflt-obj-ptrn-prop-eval-err.js fails
-language/statements/class/dstr-meth-static-dflt-obj-ptrn-prop-id-get-value-err.js fails
-language/statements/class/dstr-meth-static-dflt-obj-ptrn-prop-id-init-skipped.js fails
-language/statements/class/dstr-meth-static-dflt-obj-ptrn-prop-id-init-throws.js fails
-language/statements/class/dstr-meth-static-dflt-obj-ptrn-prop-id-init-unresolvable.js fails
-language/statements/class/dstr-meth-static-dflt-obj-ptrn-prop-id-init.js fails
-language/statements/class/dstr-meth-static-dflt-obj-ptrn-prop-id-trailing-comma.js fails
-language/statements/class/dstr-meth-static-dflt-obj-ptrn-prop-id.js fails
-language/statements/class/dstr-meth-static-dflt-obj-ptrn-prop-obj-init.js fails
-language/statements/class/dstr-meth-static-dflt-obj-ptrn-prop-obj-value-null.js fails
-language/statements/class/dstr-meth-static-dflt-obj-ptrn-prop-obj-value-undef.js fails
-language/statements/class/dstr-meth-static-dflt-obj-ptrn-prop-obj.js fails
-language/statements/class/dstr-meth-static-obj-init-null.js fails
-language/statements/class/dstr-meth-static-obj-init-undefined.js fails
-language/statements/class/dstr-meth-static-obj-ptrn-empty.js fails
-language/statements/class/dstr-meth-static-obj-ptrn-id-get-value-err.js fails
-language/statements/class/dstr-meth-static-obj-ptrn-id-init-fn-name-arrow.js fails
language/statements/class/dstr-meth-static-obj-ptrn-id-init-fn-name-class.js fails
-language/statements/class/dstr-meth-static-obj-ptrn-id-init-fn-name-cover.js fails
-language/statements/class/dstr-meth-static-obj-ptrn-id-init-fn-name-fn.js fails
-language/statements/class/dstr-meth-static-obj-ptrn-id-init-fn-name-gen.js fails
-language/statements/class/dstr-meth-static-obj-ptrn-id-init-skipped.js fails
-language/statements/class/dstr-meth-static-obj-ptrn-id-init-throws.js fails
-language/statements/class/dstr-meth-static-obj-ptrn-id-init-unresolvable.js fails
-language/statements/class/dstr-meth-static-obj-ptrn-id-trailing-comma.js fails
-language/statements/class/dstr-meth-static-obj-ptrn-list-err.js fails
-language/statements/class/dstr-meth-static-obj-ptrn-prop-ary-init.js fails
-language/statements/class/dstr-meth-static-obj-ptrn-prop-ary-trailing-comma.js fails
-language/statements/class/dstr-meth-static-obj-ptrn-prop-ary-value-null.js fails
-language/statements/class/dstr-meth-static-obj-ptrn-prop-ary.js fails
-language/statements/class/dstr-meth-static-obj-ptrn-prop-eval-err.js fails
-language/statements/class/dstr-meth-static-obj-ptrn-prop-id-get-value-err.js fails
-language/statements/class/dstr-meth-static-obj-ptrn-prop-id-init-skipped.js fails
-language/statements/class/dstr-meth-static-obj-ptrn-prop-id-init-throws.js fails
-language/statements/class/dstr-meth-static-obj-ptrn-prop-id-init-unresolvable.js fails
-language/statements/class/dstr-meth-static-obj-ptrn-prop-id-init.js fails
-language/statements/class/dstr-meth-static-obj-ptrn-prop-id-trailing-comma.js fails
-language/statements/class/dstr-meth-static-obj-ptrn-prop-id.js fails
-language/statements/class/dstr-meth-static-obj-ptrn-prop-obj-init.js fails
-language/statements/class/dstr-meth-static-obj-ptrn-prop-obj-value-null.js fails
-language/statements/class/dstr-meth-static-obj-ptrn-prop-obj-value-undef.js fails
-language/statements/class/dstr-meth-static-obj-ptrn-prop-obj.js fails
-language/statements/class/gen-meth-dflt-params-abrupt.js fails
language/statements/class/gen-meth-dflt-params-arg-val-not-undefined.js fails
language/statements/class/gen-meth-dflt-params-arg-val-undefined.js fails
language/statements/class/gen-meth-dflt-params-ref-later.js fails
@@ -4060,7 +3578,6 @@ language/statements/class/gen-meth-dflt-params-ref-self.js fails
language/statements/class/gen-meth-dflt-params-trailing-comma.js fails
language/statements/class/gen-meth-params-trailing-comma-multiple.js fails
language/statements/class/gen-meth-params-trailing-comma-single.js fails
-language/statements/class/gen-meth-static-dflt-params-abrupt.js fails
language/statements/class/gen-meth-static-dflt-params-arg-val-not-undefined.js fails
language/statements/class/gen-meth-static-dflt-params-arg-val-undefined.js fails
language/statements/class/gen-meth-static-dflt-params-ref-later.js fails
@@ -4069,31 +3586,14 @@ language/statements/class/gen-meth-static-dflt-params-ref-self.js fails
language/statements/class/gen-meth-static-dflt-params-trailing-comma.js fails
language/statements/class/gen-meth-static-params-trailing-comma-multiple.js fails
language/statements/class/gen-meth-static-params-trailing-comma-single.js fails
-language/statements/class/gen-method-length-dflt.js fails
language/statements/class/gen-method-static-yield-spread-arr-multiple.js fails
language/statements/class/gen-method-static-yield-spread-arr-single.js fails
language/statements/class/gen-method-yield-spread-arr-multiple.js fails
language/statements/class/gen-method-yield-spread-arr-single.js fails
-language/statements/class/meth-dflt-params-abrupt.js fails
-language/statements/class/meth-dflt-params-arg-val-not-undefined.js fails
-language/statements/class/meth-dflt-params-arg-val-undefined.js fails
language/statements/class/meth-dflt-params-ref-later.js fails
-language/statements/class/meth-dflt-params-ref-prior.js fails
language/statements/class/meth-dflt-params-ref-self.js fails
-language/statements/class/meth-dflt-params-trailing-comma.js fails
-language/statements/class/meth-params-trailing-comma-multiple.js fails
-language/statements/class/meth-params-trailing-comma-single.js fails
-language/statements/class/meth-static-dflt-params-abrupt.js fails
-language/statements/class/meth-static-dflt-params-arg-val-not-undefined.js fails
-language/statements/class/meth-static-dflt-params-arg-val-undefined.js fails
language/statements/class/meth-static-dflt-params-ref-later.js fails
-language/statements/class/meth-static-dflt-params-ref-prior.js fails
language/statements/class/meth-static-dflt-params-ref-self.js fails
-language/statements/class/meth-static-dflt-params-trailing-comma.js fails
-language/statements/class/meth-static-params-trailing-comma-multiple.js fails
-language/statements/class/meth-static-params-trailing-comma-single.js fails
-language/statements/class/method-length-dflt.js fails
-language/statements/class/name-binding/expression.js fails
language/statements/class/name-binding/in-extends-expression-assigned.js fails
language/statements/class/name-binding/in-extends-expression-grouped.js fails
language/statements/class/name-binding/in-extends-expression.js fails
@@ -4102,28 +3602,18 @@ language/statements/class/params-dflt-gen-meth-args-unmapped.js fails
language/statements/class/params-dflt-gen-meth-ref-arguments.js fails
language/statements/class/params-dflt-gen-meth-static-args-unmapped.js fails
language/statements/class/params-dflt-gen-meth-static-ref-arguments.js fails
-language/statements/class/params-dflt-meth-args-unmapped.js fails
-language/statements/class/params-dflt-meth-ref-arguments.js fails
-language/statements/class/params-dflt-meth-static-args-unmapped.js fails
-language/statements/class/params-dflt-meth-static-ref-arguments.js fails
language/statements/class/restricted-properties.js fails
language/statements/class/scope-gen-meth-paramsbody-var-close.js fails
language/statements/class/scope-gen-meth-paramsbody-var-open.js fails
-language/statements/class/scope-meth-paramsbody-var-close.js fails
language/statements/class/scope-meth-paramsbody-var-open.js fails
-language/statements/class/scope-name-lex-close.js fails
language/statements/class/scope-name-lex-open-heritage.js fails
-language/statements/class/scope-name-lex-open-no-heritage.js fails
-language/statements/class/scope-setter-paramsbody-var-close.js fails
language/statements/class/scope-setter-paramsbody-var-open.js fails
language/statements/class/scope-static-gen-meth-paramsbody-var-close.js fails
language/statements/class/scope-static-gen-meth-paramsbody-var-open.js fails
-language/statements/class/scope-static-meth-paramsbody-var-close.js fails
language/statements/class/scope-static-meth-paramsbody-var-open.js fails
-language/statements/class/scope-static-setter-paramsbody-var-close.js fails
language/statements/class/scope-static-setter-paramsbody-var-open.js fails
-language/statements/class/setter-length-dflt.js fails
-language/statements/class/static-method-length-dflt.js fails
+language/statements/class/static-method-gen-non-configurable-err.js fails
+language/statements/class/static-method-non-configurable-err.js fails
language/statements/class/strict-mode/arguments-callee.js fails
language/statements/class/subclass/binding.js fails
language/statements/class/subclass/bound-function.js fails
@@ -4229,11 +3719,7 @@ language/statements/class/super/in-static-methods.js fails
language/statements/class/super/in-static-setter.js fails
language/statements/class/syntax/class-body-has-direct-super-class-heritage.js fails
language/statements/class/syntax/class-body-method-definition-super-property.js fails
-language/statements/class/syntax/class-declaration-binding-identifier-class-element-list.js fails
-language/statements/class/syntax/class-declaration-computed-method-definition.js fails
-language/statements/class/syntax/class-declaration-computed-method-generator-definition.js fails
language/statements/class/syntax/class-declaration-heritage-identifier-reference-class-element-list.js fails
-language/statements/class/syntax/class-expression-binding-identifier-opt-class-element-list.js fails
language/statements/class/syntax/class-expression-heritage-identifier-reference.js fails
language/statements/class/syntax/class-expression.js fails
language/statements/const/block-local-closure-get-before-initialization.js fails