diff options
-rw-r--r-- | src/qml/jsruntime/jsruntime.pri | 2 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4engine.cpp | 30 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4engine_p.h | 4 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4enginebase_p.h | 2 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4global_p.h | 5 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4lookup.cpp | 7 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4managed.cpp | 7 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4managed_p.h | 1 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4objectproto.cpp | 10 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4runtime.cpp | 39 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4string.cpp | 3 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4string_p.h | 6 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4stringobject.cpp | 14 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4symbol.cpp | 116 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4symbol_p.h | 105 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4value.cpp | 3 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4value_p.h | 19 | ||||
-rw-r--r-- | tests/auto/qml/ecmascripttests/TestExpectations | 196 | ||||
-rw-r--r-- | tests/auto/qml/qjsengine/tst_qjsengine.cpp | 1 |
19 files changed, 340 insertions, 230 deletions
diff --git a/src/qml/jsruntime/jsruntime.pri b/src/qml/jsruntime/jsruntime.pri index 1ec00cc744..c7d80d5a82 100644 --- a/src/qml/jsruntime/jsruntime.pri +++ b/src/qml/jsruntime/jsruntime.pri @@ -36,6 +36,7 @@ SOURCES += \ $$PWD/qv4runtimecodegen.cpp \ $$PWD/qv4serialize.cpp \ $$PWD/qv4script.cpp \ + $$PWD/qv4symbol.cpp \ $$PWD/qv4include.cpp \ $$PWD/qv4qobjectwrapper.cpp \ $$PWD/qv4arraybuffer.cpp \ @@ -86,6 +87,7 @@ HEADERS += \ $$PWD/qv4regexp_p.h \ $$PWD/qv4serialize_p.h \ $$PWD/qv4script_p.h \ + $$PWD/qv4symbol_p.h \ $$PWD/qv4scopedvalue_p.h \ $$PWD/qv4executableallocator_p.h \ $$PWD/qv4include_p.h \ diff --git a/src/qml/jsruntime/qv4engine.cpp b/src/qml/jsruntime/qv4engine.cpp index af752cf243..5ede4373f2 100644 --- a/src/qml/jsruntime/qv4engine.cpp +++ b/src/qml/jsruntime/qv4engine.cpp @@ -52,6 +52,7 @@ #include <qv4numberobject_p.h> #include <qv4regexpobject_p.h> #include <qv4regexp_p.h> +#include "qv4symbol_p.h" #include <qv4variantobject_p.h> #include <qv4runtime_p.h> #include <private/qv4mm_p.h> @@ -198,12 +199,12 @@ ExecutionEngine::ExecutionEngine(QJSEngine *jsEngine) jsStackLimit = jsStackBase + JSStackLimit/sizeof(Value); identifierTable = new IdentifierTable(this); + symbolTable = new IdentifierTable(this); memset(classes, 0, sizeof(classes)); classes[Class_Empty] = memoryManager->allocIC<InternalClass>(); classes[Class_Empty]->init(this); - classes[Class_String] = classes[Class_Empty]->changeVTable(QV4::String::staticVTable()); classes[Class_MemberData] = classes[Class_Empty]->changeVTable(QV4::MemberData::staticVTable()); classes[Class_SimpleArrayData] = classes[Class_Empty]->changeVTable(QV4::SimpleArrayData::staticVTable()); classes[Class_SparseArrayData] = classes[Class_Empty]->changeVTable(QV4::SparseArrayData::staticVTable()); @@ -211,6 +212,21 @@ ExecutionEngine::ExecutionEngine(QJSEngine *jsEngine) classes[Class_CallContext] = classes[Class_Empty]->changeVTable(QV4::CallContext::staticVTable()); classes[Class_QmlContext] = classes[Class_Empty]->changeVTable(QV4::QmlContext::staticVTable()); + Scope scope(this); + Scoped<InternalClass> ic(scope); + ic = classes[Class_Empty]->changeVTable(QV4::Object::staticVTable()); + jsObjects[ObjectProto] = memoryManager->allocObject<ObjectPrototype>(ic->d()); + classes[Class_Object] = ic->changePrototype(objectPrototype()->d()); + classes[Class_QmlContextWrapper] = classes[Class_Object]->changeVTable(QV4::QQmlContextWrapper::staticVTable()); + + ic = newInternalClass(QV4::StringObject::staticVTable(), objectPrototype()); + jsObjects[StringProto] = memoryManager->allocObject<StringPrototype>(ic->d()); + classes[Class_String] = classes[Class_Empty]->changeVTable(QV4::String::staticVTable())->changePrototype(stringPrototype()->d()); + Q_ASSERT(stringPrototype()->d() && classes[Class_String]->prototype); + + jsObjects[SymbolProto] = memoryManager->allocate<SymbolPrototype>(); + classes[Class_Symbol] = classes[EngineBase::Class_Empty]->changeVTable(QV4::Symbol::staticVTable())->changePrototype(symbolPrototype()->d()); + jsStrings[String_Empty] = newIdentifier(QString()); jsStrings[String_undefined] = newIdentifier(QStringLiteral("undefined")); jsStrings[String_null] = newIdentifier(QStringLiteral("null")); @@ -248,13 +264,6 @@ ExecutionEngine::ExecutionEngine(QJSEngine *jsEngine) jsStrings[String_buffer] = newIdentifier(QStringLiteral("buffer")); jsStrings[String_lastIndex] = newIdentifier(QStringLiteral("lastIndex")); - Scope scope(this); - Scoped<InternalClass> ic(scope); - ic = classes[Class_Empty]->changeVTable(QV4::Object::staticVTable()); - jsObjects[ObjectProto] = memoryManager->allocObject<ObjectPrototype>(ic->d()); - classes[Class_Object] = ic->changePrototype(objectPrototype()->d()); - classes[EngineBase::Class_QmlContextWrapper] = classes[Class_Object]->changeVTable(QV4::QQmlContextWrapper::staticVTable()); - ic = newInternalClass(ArrayPrototype::staticVTable(), objectPrototype()); Q_ASSERT(ic->d()->prototype); ic = ic->addMember(id_length()->identifier(), Attr_NotConfigurable|Attr_NotEnumerable); @@ -277,7 +286,6 @@ ExecutionEngine::ExecutionEngine(QJSEngine *jsEngine) ic = newInternalClass(QV4::StringObject::staticVTable(), objectPrototype()); ic = ic->addMember(id_length()->identifier(), Attr_ReadOnly); - jsObjects[StringProto] = memoryManager->allocObject<StringPrototype>(ic->d()); classes[Class_StringObject] = ic->changePrototype(stringPrototype()->d()); Q_ASSERT(classes[Class_StringObject]->find(id_length()->identifier()) == Heap::StringObject::LengthPropertyIndex); @@ -362,8 +370,10 @@ ExecutionEngine::ExecutionEngine(QJSEngine *jsEngine) #endif ExecutionContext *global = rootContext(); + jsObjects[Object_Ctor] = memoryManager->allocate<ObjectCtor>(global); jsObjects[String_Ctor] = memoryManager->allocate<StringCtor>(global); + jsObjects[Symbol_Ctor] = memoryManager->allocate<SymbolCtor>(global); jsObjects[Number_Ctor] = memoryManager->allocate<NumberCtor>(global); jsObjects[Boolean_Ctor] = memoryManager->allocate<BooleanCtor>(global); jsObjects[Array_Ctor] = memoryManager->allocate<ArrayCtor>(global); @@ -380,6 +390,7 @@ ExecutionEngine::ExecutionEngine(QJSEngine *jsEngine) static_cast<ObjectPrototype *>(objectPrototype())->init(this, objectCtor()); static_cast<StringPrototype *>(stringPrototype())->init(this, stringCtor()); + static_cast<SymbolPrototype *>(symbolPrototype())->init(this, symbolCtor()); static_cast<NumberPrototype *>(numberPrototype())->init(this, numberCtor()); static_cast<BooleanPrototype *>(booleanPrototype())->init(this, booleanCtor()); static_cast<ArrayPrototype *>(arrayPrototype())->init(this, arrayCtor()); @@ -426,6 +437,7 @@ ExecutionEngine::ExecutionEngine(QJSEngine *jsEngine) globalObject->defineDefaultProperty(QStringLiteral("Object"), *objectCtor()); globalObject->defineDefaultProperty(QStringLiteral("String"), *stringCtor()); + globalObject->defineDefaultProperty(QStringLiteral("Symbol"), *symbolCtor()); FunctionObject *numberObject = numberCtor(); globalObject->defineDefaultProperty(QStringLiteral("Number"), *numberObject); globalObject->defineDefaultProperty(QStringLiteral("Boolean"), *booleanCtor()); diff --git a/src/qml/jsruntime/qv4engine_p.h b/src/qml/jsruntime/qv4engine_p.h index 4316967484..ff767a3dde 100644 --- a/src/qml/jsruntime/qv4engine_p.h +++ b/src/qml/jsruntime/qv4engine_p.h @@ -161,6 +161,7 @@ public: RootContext, IntegerNull, // Has to come after the RootContext to make the context stack safe ObjectProto, + SymbolProto, ArrayProto, PropertyListProto, StringProto, @@ -187,6 +188,7 @@ public: Object_Ctor, String_Ctor, + Symbol_Ctor, Number_Ctor, Boolean_Ctor, Array_Ctor, @@ -214,6 +216,7 @@ public: ExecutionContext *rootContext() const { return reinterpret_cast<ExecutionContext *>(jsObjects + RootContext); } FunctionObject *objectCtor() const { return reinterpret_cast<FunctionObject *>(jsObjects + Object_Ctor); } FunctionObject *stringCtor() const { return reinterpret_cast<FunctionObject *>(jsObjects + String_Ctor); } + FunctionObject *symbolCtor() const { return reinterpret_cast<FunctionObject *>(jsObjects + Symbol_Ctor); } FunctionObject *numberCtor() const { return reinterpret_cast<FunctionObject *>(jsObjects + Number_Ctor); } FunctionObject *booleanCtor() const { return reinterpret_cast<FunctionObject *>(jsObjects + Boolean_Ctor); } FunctionObject *arrayCtor() const { return reinterpret_cast<FunctionObject *>(jsObjects + Array_Ctor); } @@ -232,6 +235,7 @@ public: FunctionObject *typedArrayCtors; Object *objectPrototype() const { return reinterpret_cast<Object *>(jsObjects + ObjectProto); } + Object *symbolPrototype() const { return reinterpret_cast<Object *>(jsObjects + SymbolProto); } Object *arrayPrototype() const { return reinterpret_cast<Object *>(jsObjects + ArrayProto); } Object *propertyListPrototype() const { return reinterpret_cast<Object *>(jsObjects + PropertyListProto); } Object *stringPrototype() const { return reinterpret_cast<Object *>(jsObjects + StringProto); } diff --git a/src/qml/jsruntime/qv4enginebase_p.h b/src/qml/jsruntime/qv4enginebase_p.h index c01b9b1842..4abf92eea5 100644 --- a/src/qml/jsruntime/qv4enginebase_p.h +++ b/src/qml/jsruntime/qv4enginebase_p.h @@ -83,6 +83,7 @@ struct Q_QML_EXPORT EngineBase { Value *jsStackBase = nullptr; IdentifierTable *identifierTable = nullptr; + IdentifierTable *symbolTable = nullptr; Object *globalObject = nullptr; // Exception handling @@ -112,6 +113,7 @@ struct Q_QML_EXPORT EngineBase { Class_ErrorObjectWithMessage, Class_ErrorProto, Class_QmlContextWrapper, + Class_Symbol, NClasses }; Heap::InternalClass *classes[NClasses]; diff --git a/src/qml/jsruntime/qv4global_p.h b/src/qml/jsruntime/qv4global_p.h index 6820042406..fce220907e 100644 --- a/src/qml/jsruntime/qv4global_p.h +++ b/src/qml/jsruntime/qv4global_p.h @@ -165,7 +165,9 @@ namespace Heap { struct MemberData; struct ArrayData; + struct StringOrSymbol; struct String; + struct Symbol; struct Object; struct ObjectPrototype; @@ -197,7 +199,9 @@ namespace Heap { class MemoryManager; class ExecutableAllocator; +struct StringOrSymbol; struct String; +struct Symbol; struct Object; struct ObjectPrototype; struct ObjectIterator; @@ -244,6 +248,7 @@ struct Scope; struct ScopedValue; template<typename T> struct Scoped; typedef Scoped<String> ScopedString; +typedef Scoped<StringOrSymbol> ScopedStringOrSymbol; typedef Scoped<Object> ScopedObject; typedef Scoped<ArrayObject> ScopedArrayObject; typedef Scoped<FunctionObject> ScopedFunctionObject; diff --git a/src/qml/jsruntime/qv4lookup.cpp b/src/qml/jsruntime/qv4lookup.cpp index b5a21ca825..e4a7c703fc 100644 --- a/src/qml/jsruntime/qv4lookup.cpp +++ b/src/qml/jsruntime/qv4lookup.cpp @@ -109,11 +109,12 @@ ReturnedValue Lookup::resolvePrimitiveGetter(ExecutionEngine *engine, const Valu break; case Value::Managed_Type: { // ### Should move this over to the Object path, as strings also have an internalClass - Q_ASSERT(object.isString()); - primitiveLookup.proto = engine->stringPrototype()->d(); + Q_ASSERT(object.isStringOrSymbol()); + primitiveLookup.proto = static_cast<const Managed &>(object).internalClass()->prototype; + Q_ASSERT(primitiveLookup.proto); Scope scope(engine); ScopedString name(scope, engine->currentStackFrame->v4Function->compilationUnit->runtimeStrings[nameIndex]); - if (name->equals(engine->id_length())) { + if (object.isString() && name->equals(engine->id_length())) { // special case, as the property is on the object itself getter = stringLengthGetter; return stringLengthGetter(this, engine, object); diff --git a/src/qml/jsruntime/qv4managed.cpp b/src/qml/jsruntime/qv4managed.cpp index 924d2263c9..6ed2a9d716 100644 --- a/src/qml/jsruntime/qv4managed.cpp +++ b/src/qml/jsruntime/qv4managed.cpp @@ -72,8 +72,13 @@ QString Managed::className() const const char *s = nullptr; switch (Type(vtable()->type)) { case Type_Invalid: - case Type_String: return QString(); + case Type_String: + s = "String"; + break; + case Type_Symbol: + s = "Symbol"; + break; case Type_Object: s = "Object"; break; diff --git a/src/qml/jsruntime/qv4managed_p.h b/src/qml/jsruntime/qv4managed_p.h index 30adf07ffb..7ef5fd4ab8 100644 --- a/src/qml/jsruntime/qv4managed_p.h +++ b/src/qml/jsruntime/qv4managed_p.h @@ -182,6 +182,7 @@ public: Type_Invalid, Type_String, Type_Object, + Type_Symbol, Type_ArrayObject, Type_FunctionObject, Type_BooleanObject, diff --git a/src/qml/jsruntime/qv4objectproto.cpp b/src/qml/jsruntime/qv4objectproto.cpp index 451566137c..94917a45f6 100644 --- a/src/qml/jsruntime/qv4objectproto.cpp +++ b/src/qml/jsruntime/qv4objectproto.cpp @@ -484,10 +484,14 @@ ReturnedValue ObjectPrototype::method_toString(const FunctionObject *b, const Va return Encode(v4->newString(QStringLiteral("[object Undefined]"))); } else if (thisObject->isNull()) { return Encode(v4->newString(QStringLiteral("[object Null]"))); + } else if (thisObject->isBoolean()) { + return Encode(v4->newString(QStringLiteral("[object Boolean]"))); + } else if (thisObject->isNumber()) { + return Encode(v4->newString(QStringLiteral("[object Number]"))); } else { - Scope scope(v4); - ScopedObject obj(scope, thisObject->toObject(scope.engine)); - QString className = obj->className(); + Q_ASSERT(thisObject->isManaged()); + const Managed *m = static_cast<const Managed *>(thisObject); + QString className = m->className(); return Encode(v4->newString(QStringLiteral("[object %1]").arg(className))); } } diff --git a/src/qml/jsruntime/qv4runtime.cpp b/src/qml/jsruntime/qv4runtime.cpp index 40e08ededb..106ea65679 100644 --- a/src/qml/jsruntime/qv4runtime.cpp +++ b/src/qml/jsruntime/qv4runtime.cpp @@ -461,7 +461,10 @@ Heap::Object *RuntimeHelpers::convertToObject(ExecutionEngine *engine, const Val case Value::Boolean_Type: return engine->newBooleanObject(value.booleanValue()); case Value::Managed_Type: - Q_ASSERT(value.isString()); + Q_ASSERT(value.isStringOrSymbol()); + if (!value.isString()) + // ### this is a symbol, which is an immutable object according to spec + return nullptr; return engine->newStringObject(value.stringValue()); case Value::Integer_Type: default: // double @@ -488,6 +491,10 @@ Heap::String *RuntimeHelpers::convertToString(ExecutionEngine *engine, Value val case Value::Managed_Type: { if (value.isString()) return static_cast<const String &>(value).d(); + if (value.isSymbol()) { + engine->throwTypeError(QLatin1String("Cannot convert a symbol to a string.")); + return nullptr; + } value = Primitive::fromReturnedValue(RuntimeHelpers::toPrimitive(value, hint)); Q_ASSERT(value.isPrimitive()); if (value.isString()) @@ -598,7 +605,7 @@ static Q_NEVER_INLINE ReturnedValue getElementFallback(ExecutionEngine *engine, Q_ASSERT(!!o); // can't fail as null/undefined is covered above } - ScopedString name(scope, index.toString(engine)); + ScopedStringOrSymbol name(scope, index.toStringOrSymbol(engine)); if (scope.hasException()) return Encode::undefined(); return o->get(name); @@ -652,7 +659,7 @@ static Q_NEVER_INLINE bool setElementFallback(ExecutionEngine *engine, const Val return o->putIndexed(idx, value); } - ScopedString name(scope, index.toString(engine)); + ScopedStringOrSymbol name(scope, index.toStringOrSymbol(engine)); return o->put(name, value); } @@ -1033,24 +1040,30 @@ ReturnedValue Runtime::method_callName(ExecutionEngine *engine, int nameIndex, V ReturnedValue Runtime::method_callProperty(ExecutionEngine *engine, Value *base, int nameIndex, Value *argv, int argc) { Scope scope(engine); + ScopedString name(scope, engine->currentStackFrame->v4Function->compilationUnit->runtimeStrings[nameIndex]); + ScopedObject lookupObject(scope, base); - if (!base->isObject()) { + if (!lookupObject) { Q_ASSERT(!base->isEmpty()); if (base->isNullOrUndefined()) { QString message = QStringLiteral("Cannot call method '%1' of %2") - .arg(engine->currentStackFrame->v4Function->compilationUnit->runtimeStrings[nameIndex]->toQString(), - base->toQStringNoThrow()); + .arg(name->toQString(), base->toQStringNoThrow()); return engine->throwTypeError(message); } - ScopedValue thisObject(scope, RuntimeHelpers::convertToObject(engine, *base)); - if (engine->hasException) // type error - return Encode::undefined(); - base = thisObject; + if (base->isManaged()) { + Managed *m = static_cast<Managed *>(base); + lookupObject = m->internalClass()->prototype; + Q_ASSERT(m->internalClass()->prototype); + } else { + lookupObject = RuntimeHelpers::convertToObject(engine, *base); + if (engine->hasException) // type error + return Encode::undefined(); + base = lookupObject; + } } - ScopedString name(scope, engine->currentStackFrame->v4Function->compilationUnit->runtimeStrings[nameIndex]); - ScopedFunctionObject f(scope, static_cast<Object *>(base)->get(name)); + ScopedFunctionObject f(scope, static_cast<Object *>(lookupObject)->get(name)); if (!f) { QString error = QStringLiteral("Property '%1' of object %2 is not a function") @@ -1080,7 +1093,7 @@ ReturnedValue Runtime::method_callElement(ExecutionEngine *engine, Value *base, ScopedValue thisObject(scope, base->toObject(engine)); base = thisObject; - ScopedString str(scope, index.toString(engine)); + ScopedStringOrSymbol str(scope, index.toStringOrSymbol(engine)); if (engine->hasException) return Encode::undefined(); diff --git a/src/qml/jsruntime/qv4string.cpp b/src/qml/jsruntime/qv4string.cpp index 81044103eb..78377286de 100644 --- a/src/qml/jsruntime/qv4string.cpp +++ b/src/qml/jsruntime/qv4string.cpp @@ -138,7 +138,8 @@ void Heap::ComplexString::init(Heap::String *ref, int from, int len) this->len = len; } -void Heap::String::destroy() { +void Heap::StringOrSymbol::destroy() +{ if (text) { internalClass->engine->memoryManager->changeUnmanagedHeapSizeUsage(qptrdiff(-text->size) * (int)sizeof(QChar)); if (!text->ref.deref()) diff --git a/src/qml/jsruntime/qv4string_p.h b/src/qml/jsruntime/qv4string_p.h index 4e35853f69..c48f46fe6e 100644 --- a/src/qml/jsruntime/qv4string_p.h +++ b/src/qml/jsruntime/qv4string_p.h @@ -68,7 +68,9 @@ struct Q_QML_PRIVATE_EXPORT StringOrSymbol : Base { mutable QStringData *text; mutable Identifier identifier; + static void markObjects(Heap::Base *that, MarkStack *markStack); + void destroy(); inline QString toQString() const { if (!text) @@ -96,7 +98,6 @@ struct Q_QML_PRIVATE_EXPORT String : StringOrSymbol { } void init(const QString &text); - void destroy(); void simplifyString() const; int length() const; std::size_t retainedTextSize() const { @@ -175,6 +176,9 @@ struct Q_QML_PRIVATE_EXPORT StringOrSymbol : public Managed { uint asArrayIndex() const; + inline QString toQString() const { + return d()->toQString(); + } #endif }; diff --git a/src/qml/jsruntime/qv4stringobject.cpp b/src/qml/jsruntime/qv4stringobject.cpp index 61176b3706..db873d32e2 100644 --- a/src/qml/jsruntime/qv4stringobject.cpp +++ b/src/qml/jsruntime/qv4stringobject.cpp @@ -44,6 +44,7 @@ #include "qv4objectproto_p.h" #include <private/qv4mm_p.h> #include "qv4scopedvalue_p.h" +#include "qv4symbol_p.h" #include "qv4alloca_p.h" #include "qv4jscall_p.h" #include <QtCore/QDateTime> @@ -152,16 +153,18 @@ ReturnedValue StringCtor::callAsConstructor(const FunctionObject *f, const Value value = argv[0].toString(v4); else value = v4->newString(); + CHECK_EXCEPTION(); return Encode(v4->newStringObject(value)); } ReturnedValue StringCtor::call(const FunctionObject *m, const Value *, const Value *argv, int argc) { ExecutionEngine *v4 = m->engine(); - if (argc) - return argv[0].toString(v4)->asReturnedValue(); - else + if (!argc) return v4->newString()->asReturnedValue(); + if (argv[0].isSymbol()) + return v4->newString(argv[0].symbolValue()->descriptiveString())->asReturnedValue(); + return argv[0].toString(v4)->asReturnedValue(); } void StringPrototype::init(ExecutionEngine *engine, Object *ctor) @@ -169,6 +172,11 @@ void StringPrototype::init(ExecutionEngine *engine, Object *ctor) Scope scope(engine); ScopedObject o(scope); + // need to set this once again, as these were not fully defined when creating the string proto + Heap::InternalClass *ic = scope.engine->classes[ExecutionEngine::Class_StringObject]->changePrototype(scope.engine->objectPrototype()->d()); + d()->internalClass.set(scope.engine, ic); + d()->string.set(scope.engine, scope.engine->id_empty()->d()); + ctor->defineReadonlyProperty(engine->id_prototype(), (o = this)); ctor->defineReadonlyProperty(engine->id_length(), Primitive::fromInt32(1)); ctor->defineDefaultProperty(QStringLiteral("fromCharCode"), method_fromCharCode, 1); diff --git a/src/qml/jsruntime/qv4symbol.cpp b/src/qml/jsruntime/qv4symbol.cpp new file mode 100644 index 0000000000..82602c7cf2 --- /dev/null +++ b/src/qml/jsruntime/qv4symbol.cpp @@ -0,0 +1,116 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtQml module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <qv4symbol_p.h> +#include <qv4functionobject_p.h> + +using namespace QV4; + +DEFINE_OBJECT_VTABLE(SymbolCtor); +DEFINE_MANAGED_VTABLE(Symbol); + +void Heap::Symbol::init(Heap::String *description) +{ + identifier = Identifier::fromHeapObject(this); + QString desc = description->toQString(); + text = desc.data_ptr(); + text->ref.ref(); +} + +void Heap::SymbolCtor::init(QV4::ExecutionContext *scope) +{ + Heap::FunctionObject::init(scope, QStringLiteral("Symbol")); +} + +ReturnedValue QV4::SymbolCtor::call(const QV4::FunctionObject *f, const QV4::Value *, const QV4::Value *argv, int argc) +{ + Scope scope(f); + ScopedString s(scope); + if (argc) + s = argv[0].toString(scope.engine); + if (scope.hasException()) + return Encode::undefined(); + return f->engine()->memoryManager->alloc<Symbol>(s->d())->asReturnedValue(); +} + +ReturnedValue SymbolCtor::method_for(const FunctionObject *f, const Value *thisObject, const Value *argv, int argc) +{ +// Scope scope(f); +// ScopedValue k(s, argc ? argv[0]: Encode::undefined()); +// ScopedString key(scope, k->toString(scope.engine)); +// CHECK_EXCEPTION(); +} + +ReturnedValue SymbolCtor::method_keyFor(const FunctionObject *f, const Value *thisObject, const Value *argv, int argc) +{ +} + +void SymbolPrototype::init(ExecutionEngine *engine, Object *ctor) +{ + Scope scope(engine); + ScopedValue v(scope); + ctor->defineReadonlyProperty(engine->id_prototype(), (v = this)); + + defineDefaultProperty(QStringLiteral("toString"), method_toString); + defineDefaultProperty(QStringLiteral("valueOf"), method_valueOf); +} + +ReturnedValue SymbolPrototype::method_toString(const FunctionObject *f, const Value *thisObject, const Value *, int) +{ + ExecutionEngine *e = f->engine(); + const Symbol *s = thisObject->as<Symbol>(); + if (!s) + return e->throwTypeError(); + return e->newString(s->descriptiveString())->asReturnedValue(); +} + +ReturnedValue SymbolPrototype::method_valueOf(const FunctionObject *f, const Value *thisObject, const Value *argv, int argc) +{ + const Symbol *s = thisObject->as<Symbol>(); + if (!s) { + ExecutionEngine *e = f->engine(); + return e->throwTypeError(); + } + return s->asReturnedValue(); +} + +QString Symbol::descriptiveString() const +{ + return QLatin1String("Symbol(") + toQString() + QLatin1String(")"); +} diff --git a/src/qml/jsruntime/qv4symbol_p.h b/src/qml/jsruntime/qv4symbol_p.h new file mode 100644 index 0000000000..c33833a971 --- /dev/null +++ b/src/qml/jsruntime/qv4symbol_p.h @@ -0,0 +1,105 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtQml module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +#ifndef QV4_SYMBOL_H +#define QV4_SYMBOL_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qv4string_p.h" +#include "qv4functionobject_p.h" + +QT_BEGIN_NAMESPACE + + +namespace QV4 { + +namespace Heap { + +struct SymbolCtor : FunctionObject { + void init(QV4::ExecutionContext *scope); +}; + +struct Symbol : StringOrSymbol { + void init(Heap::String *description); +}; + +} + +struct SymbolCtor : FunctionObject +{ + V4_OBJECT2(SymbolCtor, FunctionObject) + + static ReturnedValue call(const FunctionObject *, const Value *thisObject, const Value *argv, int argc); + static ReturnedValue method_for(const FunctionObject *, const Value *thisObject, const Value *argv, int argc); + static ReturnedValue method_keyFor(const FunctionObject *, const Value *thisObject, const Value *argv, int argc); +}; + +struct SymbolPrototype : Object +{ + V4_PROTOTYPE(objectPrototype) + void init(ExecutionEngine *engine, Object *ctor); + + static ReturnedValue method_toString(const FunctionObject *, const Value *thisObject, const Value *argv, int argc); + static ReturnedValue method_valueOf(const FunctionObject *, const Value *thisObject, const Value *argv, int argc); +}; + +struct Symbol : StringOrSymbol +{ + V4_MANAGED(Symbol, StringOrSymbol) + Q_MANAGED_TYPE(Symbol) + V4_INTERNALCLASS(Symbol) + V4_NEEDS_DESTROY + + QString descriptiveString() const; +}; + +} + +QT_END_NAMESPACE + +#endif diff --git a/src/qml/jsruntime/qv4value.cpp b/src/qml/jsruntime/qv4value.cpp index c558c27521..e095a2b720 100644 --- a/src/qml/jsruntime/qv4value.cpp +++ b/src/qml/jsruntime/qv4value.cpp @@ -40,6 +40,7 @@ #include <qv4runtime_p.h> #include <qv4string_p.h> #ifndef V4_BOOTSTRAP +#include <qv4symbol_p.h> #include <qv4object_p.h> #include <qv4objectproto_p.h> #include <private/qv4mm_p.h> @@ -145,6 +146,8 @@ QString Value::toQStringNoThrow() const case Value::Managed_Type: if (String *s = stringValue()) return s->toQString(); + if (Symbol *s = symbolValue()) + return s->descriptiveString(); { Q_ASSERT(isObject()); Scope scope(objectValue()->engine()); diff --git a/src/qml/jsruntime/qv4value_p.h b/src/qml/jsruntime/qv4value_p.h index 85c345f645..b89011a9a0 100644 --- a/src/qml/jsruntime/qv4value_p.h +++ b/src/qml/jsruntime/qv4value_p.h @@ -365,7 +365,17 @@ public: QML_NEARLY_ALWAYS_INLINE String *stringValue() const { if (!isString()) return nullptr; - return reinterpret_cast<String*>(const_cast<Value *>(this)); + return reinterpret_cast<String *>(const_cast<Value *>(this)); + } + QML_NEARLY_ALWAYS_INLINE StringOrSymbol *stringOrSymbolValue() const { + if (!isStringOrSymbol()) + return nullptr; + return reinterpret_cast<StringOrSymbol *>(const_cast<Value *>(this)); + } + QML_NEARLY_ALWAYS_INLINE Symbol *symbolValue() const { + if (!isSymbol()) + return nullptr; + return reinterpret_cast<Symbol *>(const_cast<Value *>(this)); } QML_NEARLY_ALWAYS_INLINE Object *objectValue() const { if (!isObject()) @@ -411,6 +421,11 @@ public: return reinterpret_cast<Heap::String *>(m()); return toString(e, *this); } + Heap::StringOrSymbol *toStringOrSymbol(ExecutionEngine *e) const { + if (isStringOrSymbol()) + return reinterpret_cast<Heap::StringOrSymbol *>(m()); + return reinterpret_cast<Heap::StringOrSymbol *>(toString(e, *this)); + } static Heap::String *toString(ExecutionEngine *e, Value val); Heap::Object *toObject(ExecutionEngine *e) const { if (isObject()) @@ -518,7 +533,9 @@ bool Value::isSymbol() const Heap::Base *b = heapObject(); return b && b->internalClass->vtable->isStringOrSymbol && !b->internalClass->vtable->isString; } + inline bool Value::isObject() const + { Heap::Base *b = heapObject(); return b && b->internalClass->vtable->isObject; diff --git a/tests/auto/qml/ecmascripttests/TestExpectations b/tests/auto/qml/ecmascripttests/TestExpectations index 9576dca707..6f624c41f5 100644 --- a/tests/auto/qml/ecmascripttests/TestExpectations +++ b/tests/auto/qml/ecmascripttests/TestExpectations @@ -12,7 +12,6 @@ built-ins/ArrayBuffer/prototype/byteLength/detached-buffer built-ins/ArrayBuffer/prototype/byteLength/length built-ins/ArrayBuffer/prototype/byteLength/name built-ins/ArrayBuffer/prototype/byteLength/prop-desc -built-ins/ArrayBuffer/prototype/byteLength/this-is-not-object built-ins/ArrayBuffer/prototype-from-newtarget built-ins/ArrayBuffer/prototype/slice/context-is-not-object built-ins/ArrayBuffer/prototype/slice/end-default-if-absent @@ -24,14 +23,10 @@ built-ins/ArrayBuffer/prototype/slice/nonconstructor built-ins/ArrayBuffer/prototype/slice/species built-ins/ArrayBuffer/prototype/slice/species-constructor-is-not-object built-ins/ArrayBuffer/prototype/slice/species-constructor-is-undefined -built-ins/ArrayBuffer/prototype/slice/species-is-not-constructor built-ins/ArrayBuffer/prototype/slice/species-is-not-object built-ins/ArrayBuffer/prototype/slice/species-is-null built-ins/ArrayBuffer/prototype/slice/species-is-undefined built-ins/ArrayBuffer/prototype/slice/species-returns-larger-arraybuffer -built-ins/ArrayBuffer/prototype/slice/species-returns-not-arraybuffer -built-ins/ArrayBuffer/prototype/slice/species-returns-same-arraybuffer -built-ins/ArrayBuffer/prototype/slice/species-returns-smaller-arraybuffer built-ins/ArrayBuffer/prototype/slice/start-default-if-absent built-ins/ArrayBuffer/prototype/slice/start-default-if-undefined built-ins/ArrayBuffer/prototype/slice/start-exceeds-end @@ -74,7 +69,6 @@ built-ins/Array/from/iter-set-elem-prop built-ins/Array/from/iter-set-elem-prop-err built-ins/Array/from/iter-set-length built-ins/Array/from/iter-set-length-err -built-ins/Array/from/mapfn-is-symbol-throws built-ins/Array/from/mapfn-throws-exception built-ins/Array/from/proto-from-ctor-realm built-ins/Array/from/source-array-boundary @@ -159,18 +153,12 @@ built-ins/Array/prototype/concat/create-proto-from-ctor-realm-non-array built-ins/Array/prototype/concat/create-proxy built-ins/Array/prototype/concat/create-revoked-proxy built-ins/Array/prototype/concat/create-species -built-ins/Array/prototype/concat/create-species-abrupt built-ins/Array/prototype/concat/create-species-non-ctor -built-ins/Array/prototype/concat/create-species-null -built-ins/Array/prototype/concat/create-species-poisoned -built-ins/Array/prototype/concat/create-species-undef -built-ins/Array/prototype/concat/is-concat-spreadable-get-err built-ins/Array/prototype/concat/is-concat-spreadable-is-array-proxy-revoked built-ins/Array/prototype/concat/is-concat-spreadable-proxy built-ins/Array/prototype/concat/is-concat-spreadable-proxy-revoked built-ins/Array/prototype/concat/is-concat-spreadable-val-falsey built-ins/Array/prototype/concat/is-concat-spreadable-val-truthy -built-ins/Array/prototype/concat/is-concat-spreadable-val-undefined built-ins/Array/prototype/concat/S15.4.4.4_A3_T2 built-ins/Array/prototype/concat/S15.4.4.4_A3_T3 built-ins/Array/prototype/copyWithin/coerced-values-end @@ -192,16 +180,12 @@ built-ins/Array/prototype/copyWithin/non-negative-target-start-and-end built-ins/Array/prototype/copyWithin/prop-desc built-ins/Array/prototype/copyWithin/return-abrupt-from-delete-proxy-target built-ins/Array/prototype/copyWithin/return-abrupt-from-end -built-ins/Array/prototype/copyWithin/return-abrupt-from-end-as-symbol built-ins/Array/prototype/copyWithin/return-abrupt-from-get-start-value built-ins/Array/prototype/copyWithin/return-abrupt-from-has-start built-ins/Array/prototype/copyWithin/return-abrupt-from-set-target-value built-ins/Array/prototype/copyWithin/return-abrupt-from-start -built-ins/Array/prototype/copyWithin/return-abrupt-from-start-as-symbol built-ins/Array/prototype/copyWithin/return-abrupt-from-target -built-ins/Array/prototype/copyWithin/return-abrupt-from-target-as-symbol built-ins/Array/prototype/copyWithin/return-abrupt-from-this-length -built-ins/Array/prototype/copyWithin/return-abrupt-from-this-length-as-symbol built-ins/Array/prototype/copyWithin/return-this built-ins/Array/prototype/copyWithin/undefined-end built-ins/Array/prototype/entries/iteration @@ -221,12 +205,9 @@ built-ins/Array/prototype/fill/length built-ins/Array/prototype/fill/name built-ins/Array/prototype/fill/prop-desc built-ins/Array/prototype/fill/return-abrupt-from-end -built-ins/Array/prototype/fill/return-abrupt-from-end-as-symbol built-ins/Array/prototype/fill/return-abrupt-from-setting-property-value built-ins/Array/prototype/fill/return-abrupt-from-start -built-ins/Array/prototype/fill/return-abrupt-from-start-as-symbol built-ins/Array/prototype/fill/return-abrupt-from-this-length -built-ins/Array/prototype/fill/return-abrupt-from-this-length-as-symbol built-ins/Array/prototype/fill/return-this built-ins/Array/prototype/filter/create-ctor-non-object built-ins/Array/prototype/filter/create-proto-from-ctor-realm-array @@ -234,15 +215,9 @@ built-ins/Array/prototype/filter/create-proto-from-ctor-realm-non-array built-ins/Array/prototype/filter/create-proxy built-ins/Array/prototype/filter/create-revoked-proxy built-ins/Array/prototype/filter/create-species -built-ins/Array/prototype/filter/create-species-abrupt built-ins/Array/prototype/filter/create-species-non-ctor -built-ins/Array/prototype/filter/create-species-null -built-ins/Array/prototype/filter/create-species-poisoned -built-ins/Array/prototype/filter/create-species-undef built-ins/Array/prototype/findIndex/return-abrupt-from-this-length-as-symbol -built-ins/Array/prototype/findIndex/return-index-predicate-result-is-true built-ins/Array/prototype/find/return-abrupt-from-this-length-as-symbol -built-ins/Array/prototype/find/return-found-value-predicate-result-is-true built-ins/Array/prototype/includes/fromIndex-equal-or-greater-length-returns-false built-ins/Array/prototype/includes/fromIndex-infinity built-ins/Array/prototype/includes/fromIndex-minus-zero @@ -256,9 +231,7 @@ built-ins/Array/prototype/includes/prop-desc built-ins/Array/prototype/includes/return-abrupt-get-length built-ins/Array/prototype/includes/return-abrupt-get-prop built-ins/Array/prototype/includes/return-abrupt-tointeger-fromindex -built-ins/Array/prototype/includes/return-abrupt-tointeger-fromindex-symbol built-ins/Array/prototype/includes/return-abrupt-tonumber-length -built-ins/Array/prototype/includes/return-abrupt-tonumber-length-symbol built-ins/Array/prototype/includes/samevaluezero built-ins/Array/prototype/includes/search-found-returns-true built-ins/Array/prototype/includes/search-not-found-returns-false @@ -284,11 +257,7 @@ built-ins/Array/prototype/map/create-proto-from-ctor-realm-non-array built-ins/Array/prototype/map/create-proxy built-ins/Array/prototype/map/create-revoked-proxy built-ins/Array/prototype/map/create-species -built-ins/Array/prototype/map/create-species-abrupt built-ins/Array/prototype/map/create-species-non-ctor -built-ins/Array/prototype/map/create-species-null -built-ins/Array/prototype/map/create-species-poisoned -built-ins/Array/prototype/map/create-species-undef built-ins/Array/prototype/map/create-species-undef-invalid-len built-ins/Array/prototype/pop/clamps-to-integer-limit built-ins/Array/prototype/pop/length-near-integer-limit @@ -312,12 +281,8 @@ built-ins/Array/prototype/slice/create-proxied-array-invalid-len built-ins/Array/prototype/slice/create-proxy built-ins/Array/prototype/slice/create-revoked-proxy built-ins/Array/prototype/slice/create-species -built-ins/Array/prototype/slice/create-species-abrupt built-ins/Array/prototype/slice/create-species-neg-zero built-ins/Array/prototype/slice/create-species-non-ctor -built-ins/Array/prototype/slice/create-species-null -built-ins/Array/prototype/slice/create-species-poisoned -built-ins/Array/prototype/slice/create-species-undef built-ins/Array/prototype/slice/length-exceeding-integer-limit built-ins/Array/prototype/slice/length-exceeding-integer-limit-proxied-array built-ins/Array/prototype/slice/S15.4.4.10_A3_T1 @@ -333,13 +298,9 @@ built-ins/Array/prototype/splice/create-proto-from-ctor-realm-non-array built-ins/Array/prototype/splice/create-proxy built-ins/Array/prototype/splice/create-revoked-proxy built-ins/Array/prototype/splice/create-species -built-ins/Array/prototype/splice/create-species-abrupt built-ins/Array/prototype/splice/create-species-length-exceeding-integer-limit built-ins/Array/prototype/splice/create-species-neg-zero built-ins/Array/prototype/splice/create-species-non-ctor -built-ins/Array/prototype/splice/create-species-null -built-ins/Array/prototype/splice/create-species-poisoned -built-ins/Array/prototype/splice/create-species-undef built-ins/Array/prototype/splice/create-species-undef-invalid-len built-ins/Array/prototype/splice/length-and-deleteCount-exceeding-integer-limit built-ins/Array/prototype/splice/length-exceeding-integer-limit-shrink-array @@ -464,7 +425,6 @@ built-ins/Atomics/xor/nonshared-int-views built-ins/Atomics/xor/shared-nonint-views built-ins/Boolean/proto-from-ctor-realm built-ins/Boolean/symbol-coercion -built-ins/DataView/buffer-not-object-throws built-ins/DataView/custom-proto-access-throws built-ins/DataView/custom-proto-if-not-object-fallbacks-to-default-prototype built-ins/DataView/custom-proto-if-object-is-used @@ -476,17 +436,14 @@ built-ins/DataView/prototype/buffer/detached-buffer built-ins/DataView/prototype/buffer/length built-ins/DataView/prototype/buffer/name built-ins/DataView/prototype/buffer/prop-desc -built-ins/DataView/prototype/buffer/this-is-not-object built-ins/DataView/prototype/byteLength/detached-buffer built-ins/DataView/prototype/byteLength/length built-ins/DataView/prototype/byteLength/name built-ins/DataView/prototype/byteLength/prop-desc -built-ins/DataView/prototype/byteLength/this-is-not-object built-ins/DataView/prototype/byteOffset/detached-buffer built-ins/DataView/prototype/byteOffset/length built-ins/DataView/prototype/byteOffset/name built-ins/DataView/prototype/byteOffset/prop-desc -built-ins/DataView/prototype/byteOffset/this-is-not-object built-ins/DataView/prototype/getFloat32/detached-buffer built-ins/DataView/prototype/getFloat32/detached-buffer-after-toindex-byteoffset built-ins/DataView/prototype/getFloat32/detached-buffer-before-outofrange-byteoffset @@ -494,8 +451,6 @@ built-ins/DataView/prototype/getFloat32/index-is-out-of-range built-ins/DataView/prototype/getFloat32/length built-ins/DataView/prototype/getFloat32/negative-byteoffset-throws built-ins/DataView/prototype/getFloat32/return-abrupt-from-tonumber-byteoffset-symbol -built-ins/DataView/prototype/getFloat32/this-is-not-object -built-ins/DataView/prototype/getFloat32/to-boolean-littleendian built-ins/DataView/prototype/getFloat32/toindex-byteoffset built-ins/DataView/prototype/getFloat64/detached-buffer built-ins/DataView/prototype/getFloat64/detached-buffer-after-toindex-byteoffset @@ -504,8 +459,6 @@ built-ins/DataView/prototype/getFloat64/index-is-out-of-range built-ins/DataView/prototype/getFloat64/length built-ins/DataView/prototype/getFloat64/negative-byteoffset-throws built-ins/DataView/prototype/getFloat64/return-abrupt-from-tonumber-byteoffset-symbol -built-ins/DataView/prototype/getFloat64/this-is-not-object -built-ins/DataView/prototype/getFloat64/to-boolean-littleendian built-ins/DataView/prototype/getFloat64/toindex-byteoffset built-ins/DataView/prototype/getInt16/detached-buffer built-ins/DataView/prototype/getInt16/detached-buffer-after-toindex-byteoffset @@ -514,8 +467,6 @@ built-ins/DataView/prototype/getInt16/index-is-out-of-range built-ins/DataView/prototype/getInt16/length built-ins/DataView/prototype/getInt16/negative-byteoffset-throws built-ins/DataView/prototype/getInt16/return-abrupt-from-tonumber-byteoffset-symbol -built-ins/DataView/prototype/getInt16/this-is-not-object -built-ins/DataView/prototype/getInt16/to-boolean-littleendian built-ins/DataView/prototype/getInt16/toindex-byteoffset built-ins/DataView/prototype/getInt32/detached-buffer built-ins/DataView/prototype/getInt32/detached-buffer-after-toindex-byteoffset @@ -524,8 +475,6 @@ built-ins/DataView/prototype/getInt32/index-is-out-of-range built-ins/DataView/prototype/getInt32/length built-ins/DataView/prototype/getInt32/negative-byteoffset-throws built-ins/DataView/prototype/getInt32/return-abrupt-from-tonumber-byteoffset-symbol -built-ins/DataView/prototype/getInt32/this-is-not-object -built-ins/DataView/prototype/getInt32/to-boolean-littleendian built-ins/DataView/prototype/getInt32/toindex-byteoffset built-ins/DataView/prototype/getInt8/detached-buffer built-ins/DataView/prototype/getInt8/detached-buffer-after-toindex-byteoffset @@ -534,7 +483,6 @@ built-ins/DataView/prototype/getInt8/index-is-out-of-range built-ins/DataView/prototype/getInt8/length built-ins/DataView/prototype/getInt8/negative-byteoffset-throws built-ins/DataView/prototype/getInt8/return-abrupt-from-tonumber-byteoffset-symbol -built-ins/DataView/prototype/getInt8/this-is-not-object built-ins/DataView/prototype/getInt8/toindex-byteoffset built-ins/DataView/prototype/getUint16/detached-buffer built-ins/DataView/prototype/getUint16/detached-buffer-after-toindex-byteoffset @@ -543,8 +491,6 @@ built-ins/DataView/prototype/getUint16/index-is-out-of-range built-ins/DataView/prototype/getUint16/length built-ins/DataView/prototype/getUint16/negative-byteoffset-throws built-ins/DataView/prototype/getUint16/return-abrupt-from-tonumber-byteoffset-symbol -built-ins/DataView/prototype/getUint16/this-is-not-object -built-ins/DataView/prototype/getUint16/to-boolean-littleendian built-ins/DataView/prototype/getUint16/toindex-byteoffset built-ins/DataView/prototype/getUint32/detached-buffer built-ins/DataView/prototype/getUint32/detached-buffer-after-toindex-byteoffset @@ -553,8 +499,6 @@ built-ins/DataView/prototype/getUint32/index-is-out-of-range built-ins/DataView/prototype/getUint32/length built-ins/DataView/prototype/getUint32/negative-byteoffset-throws built-ins/DataView/prototype/getUint32/return-abrupt-from-tonumber-byteoffset-symbol -built-ins/DataView/prototype/getUint32/this-is-not-object -built-ins/DataView/prototype/getUint32/to-boolean-littleendian built-ins/DataView/prototype/getUint32/toindex-byteoffset built-ins/DataView/prototype/getUint8/detached-buffer built-ins/DataView/prototype/getUint8/detached-buffer-after-toindex-byteoffset @@ -563,7 +507,6 @@ built-ins/DataView/prototype/getUint8/index-is-out-of-range built-ins/DataView/prototype/getUint8/length built-ins/DataView/prototype/getUint8/negative-byteoffset-throws built-ins/DataView/prototype/getUint8/return-abrupt-from-tonumber-byteoffset-symbol -built-ins/DataView/prototype/getUint8/this-is-not-object built-ins/DataView/prototype/getUint8/toindex-byteoffset built-ins/DataView/prototype/setFloat32/detached-buffer built-ins/DataView/prototype/setFloat32/detached-buffer-after-number-value @@ -577,8 +520,6 @@ built-ins/DataView/prototype/setFloat32/range-check-after-value-conversion built-ins/DataView/prototype/setFloat32/return-abrupt-from-tonumber-byteoffset-symbol built-ins/DataView/prototype/setFloat32/return-abrupt-from-tonumber-value-symbol built-ins/DataView/prototype/setFloat32/set-values-return-undefined -built-ins/DataView/prototype/setFloat32/this-is-not-object -built-ins/DataView/prototype/setFloat32/to-boolean-littleendian built-ins/DataView/prototype/setFloat32/toindex-byteoffset built-ins/DataView/prototype/setFloat64/detached-buffer built-ins/DataView/prototype/setFloat64/detached-buffer-after-number-value @@ -592,8 +533,6 @@ built-ins/DataView/prototype/setFloat64/range-check-after-value-conversion built-ins/DataView/prototype/setFloat64/return-abrupt-from-tonumber-byteoffset-symbol built-ins/DataView/prototype/setFloat64/return-abrupt-from-tonumber-value-symbol built-ins/DataView/prototype/setFloat64/set-values-return-undefined -built-ins/DataView/prototype/setFloat64/this-is-not-object -built-ins/DataView/prototype/setFloat64/to-boolean-littleendian built-ins/DataView/prototype/setFloat64/toindex-byteoffset built-ins/DataView/prototype/setInt16/detached-buffer built-ins/DataView/prototype/setInt16/detached-buffer-after-number-value @@ -607,8 +546,6 @@ built-ins/DataView/prototype/setInt16/range-check-after-value-conversion built-ins/DataView/prototype/setInt16/return-abrupt-from-tonumber-byteoffset-symbol built-ins/DataView/prototype/setInt16/return-abrupt-from-tonumber-value-symbol built-ins/DataView/prototype/setInt16/set-values-return-undefined -built-ins/DataView/prototype/setInt16/this-is-not-object -built-ins/DataView/prototype/setInt16/to-boolean-littleendian built-ins/DataView/prototype/setInt16/toindex-byteoffset built-ins/DataView/prototype/setInt32/detached-buffer built-ins/DataView/prototype/setInt32/detached-buffer-after-number-value @@ -622,8 +559,6 @@ built-ins/DataView/prototype/setInt32/range-check-after-value-conversion built-ins/DataView/prototype/setInt32/return-abrupt-from-tonumber-byteoffset-symbol built-ins/DataView/prototype/setInt32/return-abrupt-from-tonumber-value-symbol built-ins/DataView/prototype/setInt32/set-values-return-undefined -built-ins/DataView/prototype/setInt32/this-is-not-object -built-ins/DataView/prototype/setInt32/to-boolean-littleendian built-ins/DataView/prototype/setInt32/toindex-byteoffset built-ins/DataView/prototype/setInt8/detached-buffer built-ins/DataView/prototype/setInt8/detached-buffer-after-number-value @@ -637,7 +572,6 @@ built-ins/DataView/prototype/setInt8/range-check-after-value-conversion built-ins/DataView/prototype/setInt8/return-abrupt-from-tonumber-byteoffset-symbol built-ins/DataView/prototype/setInt8/return-abrupt-from-tonumber-value-symbol built-ins/DataView/prototype/setInt8/set-values-return-undefined -built-ins/DataView/prototype/setInt8/this-is-not-object built-ins/DataView/prototype/setInt8/toindex-byteoffset built-ins/DataView/prototype/setUint16/detached-buffer built-ins/DataView/prototype/setUint16/detached-buffer-after-number-value @@ -651,8 +585,6 @@ built-ins/DataView/prototype/setUint16/range-check-after-value-conversion built-ins/DataView/prototype/setUint16/return-abrupt-from-tonumber-byteoffset-symbol built-ins/DataView/prototype/setUint16/return-abrupt-from-tonumber-value-symbol built-ins/DataView/prototype/setUint16/set-values-return-undefined -built-ins/DataView/prototype/setUint16/this-is-not-object -built-ins/DataView/prototype/setUint16/to-boolean-littleendian built-ins/DataView/prototype/setUint16/toindex-byteoffset built-ins/DataView/prototype/setUint32/detached-buffer built-ins/DataView/prototype/setUint32/detached-buffer-after-number-value @@ -666,8 +598,6 @@ built-ins/DataView/prototype/setUint32/range-check-after-value-conversion built-ins/DataView/prototype/setUint32/return-abrupt-from-tonumber-byteoffset-symbol built-ins/DataView/prototype/setUint32/return-abrupt-from-tonumber-value-symbol built-ins/DataView/prototype/setUint32/set-values-return-undefined -built-ins/DataView/prototype/setUint32/this-is-not-object -built-ins/DataView/prototype/setUint32/to-boolean-littleendian built-ins/DataView/prototype/setUint32/toindex-byteoffset built-ins/DataView/prototype/setUint8/detached-buffer built-ins/DataView/prototype/setUint8/detached-buffer-after-number-value @@ -681,7 +611,6 @@ built-ins/DataView/prototype/setUint8/range-check-after-value-conversion built-ins/DataView/prototype/setUint8/return-abrupt-from-tonumber-byteoffset-symbol built-ins/DataView/prototype/setUint8/return-abrupt-from-tonumber-value-symbol built-ins/DataView/prototype/setUint8/set-values-return-undefined -built-ins/DataView/prototype/setUint8/this-is-not-object built-ins/DataView/prototype/setUint8/toindex-byteoffset built-ins/DataView/prototype/Symbol.toStringTag built-ins/DataView/return-abrupt-tonumber-bytelength-symbol @@ -720,16 +649,13 @@ built-ins/Date/prototype/setTime/this-value-non-object built-ins/Date/prototype/Symbol.toPrimitive/hint-default-first-invalid built-ins/Date/prototype/Symbol.toPrimitive/hint-default-first-non-callable built-ins/Date/prototype/Symbol.toPrimitive/hint-default-first-valid -built-ins/Date/prototype/Symbol.toPrimitive/hint-default-no-callables built-ins/Date/prototype/Symbol.toPrimitive/hint-invalid built-ins/Date/prototype/Symbol.toPrimitive/hint-number-first-invalid built-ins/Date/prototype/Symbol.toPrimitive/hint-number-first-non-callable built-ins/Date/prototype/Symbol.toPrimitive/hint-number-first-valid -built-ins/Date/prototype/Symbol.toPrimitive/hint-number-no-callables built-ins/Date/prototype/Symbol.toPrimitive/hint-string-first-invalid built-ins/Date/prototype/Symbol.toPrimitive/hint-string-first-non-callable built-ins/Date/prototype/Symbol.toPrimitive/hint-string-first-valid -built-ins/Date/prototype/Symbol.toPrimitive/hint-string-no-callables built-ins/Date/prototype/Symbol.toPrimitive/length built-ins/Date/prototype/Symbol.toPrimitive/name built-ins/Date/prototype/Symbol.toPrimitive/prop-desc @@ -750,14 +676,10 @@ built-ins/Date/UTC/no-arg built-ins/Date/UTC/non-integer-values built-ins/Date/UTC/return-value built-ins/Date/UTC/year-offset -built-ins/Date/value-get-symbol-to-prim-err -built-ins/Date/value-symbol-to-prim-err built-ins/Date/value-symbol-to-prim-invocation built-ins/Date/value-symbol-to-prim-return-obj built-ins/Date/value-symbol-to-prim-return-prim built-ins/Date/value-to-primitive-call -built-ins/Date/value-to-primitive-call-err -built-ins/Date/value-to-primitive-get-meth-err built-ins/Date/value-to-primitive-result-faulty built-ins/Date/value-to-primitive-result-non-string-prim built-ins/Date/value-to-primitive-result-string @@ -928,16 +850,12 @@ built-ins/GeneratorPrototype/throw/try-finally-within-try built-ins/global/global-object built-ins/global/property-descriptor built-ins/isFinite/return-abrupt-from-tonumber-number-symbol -built-ins/isFinite/toprimitive-call-abrupt -built-ins/isFinite/toprimitive-get-abrupt built-ins/isFinite/toprimitive-not-callable-throws built-ins/isFinite/toprimitive-result-is-object-throws built-ins/isFinite/toprimitive-result-is-symbol-throws built-ins/isFinite/toprimitive-valid-result built-ins/isNaN/return-abrupt-from-tonumber-number-symbol built-ins/isNaN/return-true-nan -built-ins/isNaN/toprimitive-call-abrupt -built-ins/isNaN/toprimitive-get-abrupt built-ins/isNaN/toprimitive-not-callable-throws built-ins/isNaN/toprimitive-result-is-object-throws built-ins/isNaN/toprimitive-result-is-symbol-throws @@ -1225,22 +1143,18 @@ built-ins/NativeErrors/URIError/length built-ins/NativeErrors/URIError/proto built-ins/NativeErrors/URIError/prototype/not-error-object built-ins/Number/isFinite/arg-is-not-number -built-ins/Number/isInteger/arg-is-not-number built-ins/Number/isNaN/arg-is-not-number -built-ins/Number/isSafeInteger/arg-is-not-number built-ins/Number/proto-from-ctor-realm built-ins/Number/prototype/toExponential/infinity built-ins/Number/prototype/toExponential/nan built-ins/Number/prototype/toExponential/range built-ins/Number/prototype/toExponential/return-abrupt-tointeger-fractiondigits-symbol -built-ins/Number/prototype/toExponential/this-type-not-number-or-number-object built-ins/Number/prototype/toFixed/range built-ins/Number/prototype/toPrecision/infinity built-ins/Number/prototype/toPrecision/nan built-ins/Number/prototype/toPrecision/range built-ins/Number/prototype/toPrecision/return-abrupt-tointeger-precision-symbol built-ins/Number/prototype/toPrecision/return-values -built-ins/Number/prototype/toPrecision/this-type-not-number-or-number-object built-ins/Number/return-abrupt-tonumber-value-symbol built-ins/Number/string-binary-literal built-ins/Number/string-hex-literal-invalid @@ -1271,7 +1185,6 @@ built-ins/Object/entries/symbols-omitted built-ins/Object/entries/tamper-with-global-object built-ins/Object/entries/tamper-with-object-keys built-ins/Object/freeze/frozen-object-contains-symbol-properties-non-strict -built-ins/Object/freeze/frozen-object-contains-symbol-properties-strict built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-187 built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-191 built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-194 @@ -1350,23 +1263,19 @@ built-ins/Object/prototype/propertyIsEnumerable/symbol_property_valueOf built-ins/Object/prototype/setPrototypeOf-with-different-values built-ins/Object/prototype/setPrototypeOf-with-same-value built-ins/Object/prototype/toLocaleString/primitive_this_value_getter -built-ins/Object/prototype/toString/get-symbol-tag-err built-ins/Object/prototype/toString/no-prototype-property built-ins/Object/prototype/toString/proxy-array built-ins/Object/prototype/toString/proxy-function built-ins/Object/prototype/toString/proxy-revoked -built-ins/Object/prototype/toString/symbol-tag-non-str built-ins/Object/prototype/toString/symbol-tag-override-instances built-ins/Object/prototype/toString/symbol-tag-override-primitives built-ins/Object/prototype/toString/symbol-tag-str built-ins/Object/prototype/valueOf/S15.2.4.4_A14 built-ins/Object/seal/symbol-object-contains-symbol-properties-non-strict -built-ins/Object/seal/symbol-object-contains-symbol-properties-strict built-ins/Object/setPrototypeOf/length built-ins/Object/setPrototypeOf/name built-ins/Object/setPrototypeOf/o-not-obj built-ins/Object/setPrototypeOf/property-descriptor -built-ins/Object/setPrototypeOf/proto-not-obj built-ins/Object/setPrototypeOf/set-error built-ins/Object/setPrototypeOf/success built-ins/Object/symbol_object-returns-fresh-symbol @@ -2147,14 +2056,12 @@ built-ins/RegExp/prototype/sticky/this-val-regexp built-ins/RegExp/prototype/sticky/this-val-regexp-prototype built-ins/RegExp/prototype/Symbol.match/builtin-coerce-lastindex built-ins/RegExp/prototype/Symbol.match/builtin-failure-g-set-lastindex -built-ins/RegExp/prototype/Symbol.match/builtin-failure-g-set-lastindex-err built-ins/RegExp/prototype/Symbol.match/builtin-failure-return-val built-ins/RegExp/prototype/Symbol.match/builtin-failure-y-return-val built-ins/RegExp/prototype/Symbol.match/builtin-failure-y-set-lastindex built-ins/RegExp/prototype/Symbol.match/builtin-failure-y-set-lastindex-err built-ins/RegExp/prototype/Symbol.match/builtin-infer-unicode built-ins/RegExp/prototype/Symbol.match/builtin-success-g-set-lastindex -built-ins/RegExp/prototype/Symbol.match/builtin-success-g-set-lastindex-err built-ins/RegExp/prototype/Symbol.match/builtin-success-return-val built-ins/RegExp/prototype/Symbol.match/builtin-success-return-val-groups built-ins/RegExp/prototype/Symbol.match/builtin-success-u-return-val-groups @@ -2175,10 +2082,8 @@ built-ins/RegExp/prototype/Symbol.match/get-unicode-error built-ins/RegExp/prototype/Symbol.match/g-get-exec-err built-ins/RegExp/prototype/Symbol.match/g-get-result-err built-ins/RegExp/prototype/Symbol.match/g-init-lastindex -built-ins/RegExp/prototype/Symbol.match/g-init-lastindex-err built-ins/RegExp/prototype/Symbol.match/g-match-empty-advance-lastindex built-ins/RegExp/prototype/Symbol.match/g-match-empty-coerce-lastindex-err -built-ins/RegExp/prototype/Symbol.match/g-match-empty-set-lastindex-err built-ins/RegExp/prototype/Symbol.match/g-match-no-coerce-lastindex built-ins/RegExp/prototype/Symbol.match/g-match-no-set-lastindex built-ins/RegExp/prototype/Symbol.match/g-success-return-val @@ -2186,7 +2091,6 @@ built-ins/RegExp/prototype/Symbol.match/g-zero-matches built-ins/RegExp/prototype/Symbol.match/length built-ins/RegExp/prototype/Symbol.match/name built-ins/RegExp/prototype/Symbol.match/prop-desc -built-ins/RegExp/prototype/Symbol.match/this-val-non-obj built-ins/RegExp/prototype/Symbol.match/this-val-non-regexp built-ins/RegExp/prototype/Symbol.match/u-advance-after-empty built-ins/RegExp/prototype/Symbol.match/y-fail-global-return @@ -2240,7 +2144,6 @@ built-ins/RegExp/prototype/Symbol.replace/subst-capture-idx-1 built-ins/RegExp/prototype/Symbol.replace/subst-capture-idx-2 built-ins/RegExp/prototype/Symbol.replace/subst-dollar built-ins/RegExp/prototype/Symbol.replace/subst-matched -built-ins/RegExp/prototype/Symbol.replace/this-val-non-obj built-ins/RegExp/prototype/Symbol.replace/u-advance-after-empty built-ins/RegExp/prototype/Symbol.replace/y-fail-global-return built-ins/RegExp/prototype/Symbol.replace/y-fail-lastindex @@ -2265,7 +2168,6 @@ built-ins/RegExp/prototype/Symbol.search/set-lastindex-restore built-ins/RegExp/prototype/Symbol.search/set-lastindex-restore-err built-ins/RegExp/prototype/Symbol.search/success-get-index-err built-ins/RegExp/prototype/Symbol.search/success-return-val -built-ins/RegExp/prototype/Symbol.search/this-val-non-obj built-ins/RegExp/prototype/Symbol.search/u-lastindex-advance built-ins/RegExp/prototype/Symbol.search/y-fail-return built-ins/RegExp/prototype/Symbol.split/coerce-flags @@ -2308,7 +2210,6 @@ built-ins/RegExp/prototype/Symbol.split/str-set-lastindex-err built-ins/RegExp/prototype/Symbol.split/str-set-lastindex-match built-ins/RegExp/prototype/Symbol.split/str-set-lastindex-no-match built-ins/RegExp/prototype/Symbol.split/str-trailing-chars -built-ins/RegExp/prototype/Symbol.split/this-val-non-obj built-ins/RegExp/prototype/Symbol.split/u-lastindex-adv-thru-failure built-ins/RegExp/prototype/Symbol.split/u-lastindex-adv-thru-match built-ins/RegExp/prototype/test/S15.10.6.3_A1_T22 @@ -2613,7 +2514,6 @@ built-ins/String/prototype/codePointAt/codePointAt built-ins/String/prototype/codePointAt/length built-ins/String/prototype/codePointAt/name built-ins/String/prototype/codePointAt/return-abrupt-from-object-pos-to-integer -built-ins/String/prototype/codePointAt/return-abrupt-from-symbol-pos-to-integer built-ins/String/prototype/codePointAt/return-abrupt-from-this built-ins/String/prototype/codePointAt/return-abrupt-from-this-as-symbol built-ins/String/prototype/codePointAt/return-code-unit-coerced-position @@ -2637,17 +2537,13 @@ built-ins/String/prototype/indexOf/position-tointeger-wrapped-values built-ins/String/prototype/indexOf/searchstring-tostring-errors built-ins/String/prototype/indexOf/searchstring-tostring-toprimitive built-ins/String/prototype/indexOf/searchstring-tostring-wrapped-values -built-ins/String/prototype/match/cstm-matcher-get-err built-ins/String/prototype/match/cstm-matcher-invocation -built-ins/String/prototype/match/invoke-builtin-match built-ins/String/prototype/normalize/form-is-not-valid-throws built-ins/String/prototype/normalize/length built-ins/String/prototype/normalize/name built-ins/String/prototype/normalize/normalize built-ins/String/prototype/normalize/return-abrupt-from-form -built-ins/String/prototype/normalize/return-abrupt-from-form-as-symbol built-ins/String/prototype/normalize/return-abrupt-from-this -built-ins/String/prototype/normalize/return-abrupt-from-this-as-symbol built-ins/String/prototype/normalize/return-normalized-string built-ins/String/prototype/normalize/return-normalized-string-from-coerced-form built-ins/String/prototype/normalize/return-normalized-string-using-default-parameter @@ -2677,15 +2573,12 @@ built-ins/String/prototype/padStart/normal-operation built-ins/String/prototype/padStart/observable-operations built-ins/String/prototype/repeat/return-abrupt-from-count-as-symbol built-ins/String/prototype/repeat/return-abrupt-from-this-as-symbol -built-ins/String/prototype/replace/cstm-replace-get-err built-ins/String/prototype/replace/cstm-replace-invocation built-ins/String/prototype/replace/this-value-not-obj-coercible -built-ins/String/prototype/search/cstm-search-get-err built-ins/String/prototype/search/cstm-search-invocation built-ins/String/prototype/search/invoke-builtin-search built-ins/String/prototype/search/invoke-builtin-search-searcher-undef built-ins/String/prototype/slice/this-value-not-obj-coercible -built-ins/String/prototype/split/cstm-split-get-err built-ins/String/prototype/split/cstm-split-invocation built-ins/String/prototype/startsWith/return-abrupt-from-position-as-symbol built-ins/String/prototype/startsWith/return-abrupt-from-searchstring-as-symbol @@ -2694,7 +2587,6 @@ built-ins/String/prototype/startsWith/return-abrupt-from-this-as-symbol built-ins/String/prototype/Symbol.iterator/length built-ins/String/prototype/Symbol.iterator/name built-ins/String/prototype/Symbol.iterator/prop-desc -built-ins/String/prototype/Symbol.iterator/this-val-non-obj-coercible built-ins/String/prototype/Symbol.iterator/this-val-to-str-err built-ins/String/prototype/toLocaleLowerCase/Final_Sigma_U180E built-ins/String/prototype/toLocaleLowerCase/special_casing_conditional @@ -2702,7 +2594,6 @@ built-ins/String/prototype/toLowerCase/Final_Sigma_U180E built-ins/String/prototype/toLowerCase/special_casing_conditional built-ins/String/raw/length built-ins/String/raw/name -built-ins/String/raw/nextkey-is-symbol-throws built-ins/String/raw/raw built-ins/String/raw/return-empty-string-from-empty-array-length built-ins/String/raw/return-empty-string-if-length-is-negative-infinity @@ -2716,24 +2607,19 @@ built-ins/String/raw/return-empty-string-if-length-is-zero-or-less-string built-ins/String/raw/returns-abrupt-from-next-key built-ins/String/raw/returns-abrupt-from-next-key-toString built-ins/String/raw/returns-abrupt-from-substitution -built-ins/String/raw/returns-abrupt-from-substitution-symbol built-ins/String/raw/return-the-string-value built-ins/String/raw/return-the-string-value-from-template built-ins/String/raw/special-characters built-ins/String/raw/substitutions-are-appended-on-same-index built-ins/String/raw/substitutions-are-limited-to-template-raw-length -built-ins/String/raw/template-length-is-symbol-throws built-ins/String/raw/template-length-throws built-ins/String/raw/template-raw-throws built-ins/String/raw/template-substitutions-are-appended-on-same-index built-ins/String/raw/zero-literal-segments built-ins/String/symbol-string-coercion -built-ins/String/symbol-wrapping built-ins/Symbol/auto-boxing-non-strict built-ins/Symbol/auto-boxing-strict built-ins/Symbol/constructor -built-ins/Symbol/desc-to-string -built-ins/Symbol/desc-to-string-symbol built-ins/Symbol/for/create-value built-ins/Symbol/for/cross-realm built-ins/Symbol/for/length @@ -2743,7 +2629,6 @@ built-ins/Symbol/for/retrieve-value built-ins/Symbol/for/to-string-err built-ins/Symbol/hasInstance/cross-realm built-ins/Symbol/hasInstance/prop-desc -built-ins/Symbol/invoked-with-new built-ins/Symbol/isConcatSpreadable/cross-realm built-ins/Symbol/isConcatSpreadable/prop-desc built-ins/Symbol/iterator/cross-realm @@ -2758,26 +2643,18 @@ built-ins/Symbol/keyFor/prop-desc built-ins/Symbol/length built-ins/Symbol/match/cross-realm built-ins/Symbol/match/prop-desc -built-ins/Symbol/name built-ins/Symbol/prototype/constructor built-ins/Symbol/prototype/intrinsic built-ins/Symbol/prototype/Symbol.toPrimitive/length built-ins/Symbol/prototype/Symbol.toPrimitive/name built-ins/Symbol/prototype/Symbol.toPrimitive/prop-desc built-ins/Symbol/prototype/Symbol.toPrimitive/this-val-non-obj -built-ins/Symbol/prototype/Symbol.toPrimitive/this-val-obj-non-symbol-wrapper built-ins/Symbol/prototype/Symbol.toPrimitive/this-val-obj-symbol-wrapper built-ins/Symbol/prototype/Symbol.toPrimitive/this-val-symbol built-ins/Symbol/prototype/Symbol.toStringTag -built-ins/Symbol/prototype/toString/length -built-ins/Symbol/prototype/toString/name built-ins/Symbol/prototype/toString/prop-desc built-ins/Symbol/prototype/toString/toString -built-ins/Symbol/prototype/toString/toString-default-attributes-non-strict -built-ins/Symbol/prototype/toString/toString-default-attributes-strict built-ins/Symbol/prototype/toString/undefined -built-ins/Symbol/prototype/valueOf/length -built-ins/Symbol/prototype/valueOf/name built-ins/Symbol/prototype/valueOf/prop-desc built-ins/Symbol/prototype/valueOf/this-val-non-obj built-ins/Symbol/prototype/valueOf/this-val-obj-non-symbol @@ -2793,7 +2670,6 @@ built-ins/Symbol/species/cross-realm built-ins/Symbol/species/subclassing built-ins/Symbol/split/cross-realm built-ins/Symbol/split/prop-desc -built-ins/Symbol/symbol built-ins/Symbol/toPrimitive/cross-realm built-ins/Symbol/toPrimitive/prop-desc built-ins/Symbol/toStringTag/cross-realm @@ -2814,7 +2690,6 @@ built-ins/TypedArray/from/iter-invoke-error built-ins/TypedArray/from/iter-next-error built-ins/TypedArray/from/iter-next-value-error built-ins/TypedArray/from/length -built-ins/TypedArray/from/mapfn-is-not-callable built-ins/TypedArray/from/name built-ins/TypedArray/from/prop-desc built-ins/TypedArray/from/this-is-not-constructor @@ -4026,7 +3901,6 @@ language/expressions/addition/coerce-symbol-to-prim-return-obj language/expressions/addition/coerce-symbol-to-prim-return-prim language/expressions/addition/get-symbol-to-prim-err language/expressions/addition/order-of-evaluation -language/expressions/addition/symbol-to-string language/expressions/array/spread-err-mult-err-expr-throws language/expressions/array/spread-err-mult-err-iter-get-value language/expressions/array/spread-err-mult-err-itr-get-call @@ -4053,8 +3927,6 @@ language/expressions/arrow-function/cannot-override-this-with-thisArg language/expressions/arrow-function/dflt-params-ref-later language/expressions/arrow-function/dflt-params-ref-self language/expressions/arrow-function/dstr-ary-init-iter-close -language/expressions/arrow-function/dstr-ary-init-iter-get-err -language/expressions/arrow-function/dstr-ary-init-iter-no-close language/expressions/arrow-function/dstr-ary-ptrn-elem-ary-elision-init language/expressions/arrow-function/dstr-ary-ptrn-elem-ary-elision-iter language/expressions/arrow-function/dstr-ary-ptrn-elem-ary-empty-init @@ -4062,8 +3934,6 @@ language/expressions/arrow-function/dstr-ary-ptrn-elem-ary-rest-init language/expressions/arrow-function/dstr-ary-ptrn-elem-ary-rest-iter language/expressions/arrow-function/dstr-ary-ptrn-elem-id-init-fn-name-class language/expressions/arrow-function/dstr-ary-ptrn-elem-id-init-fn-name-gen -language/expressions/arrow-function/dstr-ary-ptrn-elem-id-iter-step-err -language/expressions/arrow-function/dstr-ary-ptrn-elem-id-iter-val-err language/expressions/arrow-function/dstr-ary-ptrn-elision language/expressions/arrow-function/dstr-ary-ptrn-elision-exhausted language/expressions/arrow-function/dstr-ary-ptrn-elision-step-err @@ -4081,8 +3951,6 @@ language/expressions/arrow-function/dstr-ary-ptrn-rest-id-iter-val-err language/expressions/arrow-function/dstr-ary-ptrn-rest-obj-id language/expressions/arrow-function/dstr-ary-ptrn-rest-obj-prop-id language/expressions/arrow-function/dstr-dflt-ary-init-iter-close -language/expressions/arrow-function/dstr-dflt-ary-init-iter-get-err -language/expressions/arrow-function/dstr-dflt-ary-init-iter-no-close language/expressions/arrow-function/dstr-dflt-ary-ptrn-elem-ary-elision-init language/expressions/arrow-function/dstr-dflt-ary-ptrn-elem-ary-elision-iter language/expressions/arrow-function/dstr-dflt-ary-ptrn-elem-ary-empty-init @@ -4090,8 +3958,6 @@ language/expressions/arrow-function/dstr-dflt-ary-ptrn-elem-ary-rest-init language/expressions/arrow-function/dstr-dflt-ary-ptrn-elem-ary-rest-iter language/expressions/arrow-function/dstr-dflt-ary-ptrn-elem-id-init-fn-name-class language/expressions/arrow-function/dstr-dflt-ary-ptrn-elem-id-init-fn-name-gen -language/expressions/arrow-function/dstr-dflt-ary-ptrn-elem-id-iter-step-err -language/expressions/arrow-function/dstr-dflt-ary-ptrn-elem-id-iter-val-err language/expressions/arrow-function/dstr-dflt-ary-ptrn-elision language/expressions/arrow-function/dstr-dflt-ary-ptrn-elision-exhausted language/expressions/arrow-function/dstr-dflt-ary-ptrn-elision-step-err @@ -4135,7 +4001,6 @@ language/expressions/assignment/dstr-array-elem-init-fn-name-class language/expressions/assignment/dstr-array-elem-init-fn-name-gen language/expressions/assignment/dstr-array-elem-init-let language/expressions/assignment/dstr-array-elem-init-yield-expr -language/expressions/assignment/dstr-array-elem-iter-get-err language/expressions/assignment/dstr-array-elem-iter-nrml-close language/expressions/assignment/dstr-array-elem-iter-nrml-close-err language/expressions/assignment/dstr-array-elem-iter-nrml-close-null @@ -4161,7 +4026,6 @@ language/expressions/assignment/dstr-array-elem-trlg-iter-elision-iter-nrml-clos language/expressions/assignment/dstr-array-elem-trlg-iter-elision-iter-nrml-close-err language/expressions/assignment/dstr-array-elem-trlg-iter-elision-iter-nrml-close-null language/expressions/assignment/dstr-array-elem-trlg-iter-elision-iter-nrml-close-skip -language/expressions/assignment/dstr-array-elem-trlg-iter-get-err language/expressions/assignment/dstr-array-elem-trlg-iter-list-nrml-close language/expressions/assignment/dstr-array-elem-trlg-iter-list-nrml-close-err language/expressions/assignment/dstr-array-elem-trlg-iter-list-nrml-close-null @@ -4180,7 +4044,6 @@ language/expressions/assignment/dstr-array-elem-trlg-iter-rest-thrw-close language/expressions/assignment/dstr-array-elem-trlg-iter-rest-thrw-close-err language/expressions/assignment/dstr-array-elem-trlg-iter-rest-thrw-close-skip language/expressions/assignment/dstr-array-elision-iter-abpt -language/expressions/assignment/dstr-array-elision-iter-get-err language/expressions/assignment/dstr-array-elision-iter-nrml-close language/expressions/assignment/dstr-array-elision-iter-nrml-close-err language/expressions/assignment/dstr-array-elision-iter-nrml-close-null @@ -4193,7 +4056,6 @@ language/expressions/assignment/dstr-array-elision-val-undef language/expressions/assignment/dstr-array-empty-iter-close language/expressions/assignment/dstr-array-empty-iter-close-err language/expressions/assignment/dstr-array-empty-iter-close-null -language/expressions/assignment/dstr-array-empty-iter-get-err language/expressions/assignment/dstr-array-empty-val-bool language/expressions/assignment/dstr-array-empty-val-null language/expressions/assignment/dstr-array-empty-val-num @@ -5237,13 +5099,9 @@ language/expressions/conditional/tco-cond language/expressions/conditional/tco-pos language/expressions/delete/super-property language/expressions/division/order-of-evaluation -language/expressions/equals/coerce-symbol-to-prim-err language/expressions/equals/coerce-symbol-to-prim-invocation language/expressions/equals/coerce-symbol-to-prim-return-obj language/expressions/equals/coerce-symbol-to-prim-return-prim -language/expressions/equals/get-symbol-to-prim-err -language/expressions/equals/symbol-abstract-equality-comparison -language/expressions/equals/symbol-strict-equality-comparison language/expressions/equals/to-prim-hint language/expressions/exponentiation/applying-the-exp-operator_A7 language/expressions/exponentiation/applying-the-exp-operator_A8 @@ -5254,8 +5112,6 @@ language/expressions/function/dflt-params-ref-later language/expressions/function/dflt-params-ref-self language/expressions/function/dflt-params-trailing-comma language/expressions/function/dstr-ary-init-iter-close -language/expressions/function/dstr-ary-init-iter-get-err -language/expressions/function/dstr-ary-init-iter-no-close language/expressions/function/dstr-ary-name-iter-val language/expressions/function/dstr-ary-ptrn-elem-ary-elem-init language/expressions/function/dstr-ary-ptrn-elem-ary-elem-iter @@ -5270,9 +5126,7 @@ language/expressions/function/dstr-ary-ptrn-elem-id-init-fn-name-cover language/expressions/function/dstr-ary-ptrn-elem-id-init-fn-name-fn language/expressions/function/dstr-ary-ptrn-elem-id-init-fn-name-gen language/expressions/function/dstr-ary-ptrn-elem-id-init-skipped -language/expressions/function/dstr-ary-ptrn-elem-id-iter-step-err language/expressions/function/dstr-ary-ptrn-elem-id-iter-val -language/expressions/function/dstr-ary-ptrn-elem-id-iter-val-err language/expressions/function/dstr-ary-ptrn-elision language/expressions/function/dstr-ary-ptrn-elision-exhausted language/expressions/function/dstr-ary-ptrn-elision-step-err @@ -5290,8 +5144,6 @@ language/expressions/function/dstr-ary-ptrn-rest-id-iter-val-err language/expressions/function/dstr-ary-ptrn-rest-obj-id language/expressions/function/dstr-ary-ptrn-rest-obj-prop-id language/expressions/function/dstr-dflt-ary-init-iter-close -language/expressions/function/dstr-dflt-ary-init-iter-get-err -language/expressions/function/dstr-dflt-ary-init-iter-no-close language/expressions/function/dstr-dflt-ary-name-iter-val language/expressions/function/dstr-dflt-ary-ptrn-elem-ary-elem-init language/expressions/function/dstr-dflt-ary-ptrn-elem-ary-elem-iter @@ -5306,9 +5158,7 @@ language/expressions/function/dstr-dflt-ary-ptrn-elem-id-init-fn-name-cover language/expressions/function/dstr-dflt-ary-ptrn-elem-id-init-fn-name-fn language/expressions/function/dstr-dflt-ary-ptrn-elem-id-init-fn-name-gen language/expressions/function/dstr-dflt-ary-ptrn-elem-id-init-skipped -language/expressions/function/dstr-dflt-ary-ptrn-elem-id-iter-step-err language/expressions/function/dstr-dflt-ary-ptrn-elem-id-iter-val -language/expressions/function/dstr-dflt-ary-ptrn-elem-id-iter-val-err language/expressions/function/dstr-dflt-ary-ptrn-elision language/expressions/function/dstr-dflt-ary-ptrn-elision-exhausted language/expressions/function/dstr-dflt-ary-ptrn-elision-step-err @@ -5572,7 +5422,6 @@ language/expressions/instanceof/prototype-getter-with-object language/expressions/instanceof/prototype-getter-with-object-throws language/expressions/instanceof/symbol-hasinstance-get-err language/expressions/instanceof/symbol-hasinstance-invocation -language/expressions/instanceof/symbol-hasinstance-not-callable language/expressions/instanceof/symbol-hasinstance-to-boolean language/expressions/left-shift/order-of-evaluation language/expressions/logical-and/symbol-logical-and-evaluation @@ -5802,8 +5651,6 @@ language/expressions/object/dstr-gen-meth-obj-ptrn-prop-obj-init language/expressions/object/dstr-gen-meth-obj-ptrn-prop-obj-value-null language/expressions/object/dstr-gen-meth-obj-ptrn-prop-obj-value-undef language/expressions/object/dstr-meth-ary-init-iter-close -language/expressions/object/dstr-meth-ary-init-iter-get-err -language/expressions/object/dstr-meth-ary-init-iter-no-close language/expressions/object/dstr-meth-ary-name-iter-val language/expressions/object/dstr-meth-ary-ptrn-elem-ary-elem-init language/expressions/object/dstr-meth-ary-ptrn-elem-ary-elem-iter @@ -5818,9 +5665,7 @@ language/expressions/object/dstr-meth-ary-ptrn-elem-id-init-fn-name-cover language/expressions/object/dstr-meth-ary-ptrn-elem-id-init-fn-name-fn language/expressions/object/dstr-meth-ary-ptrn-elem-id-init-fn-name-gen language/expressions/object/dstr-meth-ary-ptrn-elem-id-init-skipped -language/expressions/object/dstr-meth-ary-ptrn-elem-id-iter-step-err language/expressions/object/dstr-meth-ary-ptrn-elem-id-iter-val -language/expressions/object/dstr-meth-ary-ptrn-elem-id-iter-val-err language/expressions/object/dstr-meth-ary-ptrn-elision language/expressions/object/dstr-meth-ary-ptrn-elision-exhausted language/expressions/object/dstr-meth-ary-ptrn-elision-step-err @@ -5838,8 +5683,6 @@ language/expressions/object/dstr-meth-ary-ptrn-rest-id-iter-val-err language/expressions/object/dstr-meth-ary-ptrn-rest-obj-id language/expressions/object/dstr-meth-ary-ptrn-rest-obj-prop-id language/expressions/object/dstr-meth-dflt-ary-init-iter-close -language/expressions/object/dstr-meth-dflt-ary-init-iter-get-err -language/expressions/object/dstr-meth-dflt-ary-init-iter-no-close language/expressions/object/dstr-meth-dflt-ary-name-iter-val language/expressions/object/dstr-meth-dflt-ary-ptrn-elem-ary-elem-init language/expressions/object/dstr-meth-dflt-ary-ptrn-elem-ary-elem-iter @@ -5854,9 +5697,7 @@ language/expressions/object/dstr-meth-dflt-ary-ptrn-elem-id-init-fn-name-cover language/expressions/object/dstr-meth-dflt-ary-ptrn-elem-id-init-fn-name-fn language/expressions/object/dstr-meth-dflt-ary-ptrn-elem-id-init-fn-name-gen language/expressions/object/dstr-meth-dflt-ary-ptrn-elem-id-init-skipped -language/expressions/object/dstr-meth-dflt-ary-ptrn-elem-id-iter-step-err language/expressions/object/dstr-meth-dflt-ary-ptrn-elem-id-iter-val -language/expressions/object/dstr-meth-dflt-ary-ptrn-elem-id-iter-val-err language/expressions/object/dstr-meth-dflt-ary-ptrn-elision language/expressions/object/dstr-meth-dflt-ary-ptrn-elision-exhausted language/expressions/object/dstr-meth-dflt-ary-ptrn-elision-step-err @@ -6191,7 +6032,6 @@ language/global-code/script-decl-var-err language/global-code/switch-case-decl-strict language/global-code/switch-dflt-decl-strict language/global-code/unscopables-ignored -language/identifier-resolution/unscopables language/identifiers/other_id_continue language/identifiers/other_id_start language/identifiers/other_id_start-escaped @@ -7374,8 +7214,6 @@ language/statements/const/block-local-use-before-initialization-in-declaration-s language/statements/const/block-local-use-before-initialization-in-prior-statement language/statements/const/cptn-value language/statements/const/dstr-ary-init-iter-close -language/statements/const/dstr-ary-init-iter-get-err -language/statements/const/dstr-ary-init-iter-no-close language/statements/const/dstr-ary-name-iter-val language/statements/const/dstr-ary-ptrn-elem-ary-elem-init language/statements/const/dstr-ary-ptrn-elem-ary-elem-iter @@ -7390,9 +7228,7 @@ language/statements/const/dstr-ary-ptrn-elem-id-init-fn-name-cover language/statements/const/dstr-ary-ptrn-elem-id-init-fn-name-fn language/statements/const/dstr-ary-ptrn-elem-id-init-fn-name-gen language/statements/const/dstr-ary-ptrn-elem-id-init-skipped -language/statements/const/dstr-ary-ptrn-elem-id-iter-step-err language/statements/const/dstr-ary-ptrn-elem-id-iter-val -language/statements/const/dstr-ary-ptrn-elem-id-iter-val-err language/statements/const/dstr-ary-ptrn-elision language/statements/const/dstr-ary-ptrn-elision-exhausted language/statements/const/dstr-ary-ptrn-elision-step-err @@ -7429,8 +7265,6 @@ language/statements/const/syntax/const-outer-inner-let-bindings language/statements/do-while/tco-body language/statements/empty/cptn-value language/statements/for/dstr-const-ary-init-iter-close -language/statements/for/dstr-const-ary-init-iter-get-err -language/statements/for/dstr-const-ary-init-iter-no-close language/statements/for/dstr-const-ary-name-iter-val language/statements/for/dstr-const-ary-ptrn-elem-ary-elem-init language/statements/for/dstr-const-ary-ptrn-elem-ary-elem-iter @@ -7445,9 +7279,7 @@ language/statements/for/dstr-const-ary-ptrn-elem-id-init-fn-name-cover language/statements/for/dstr-const-ary-ptrn-elem-id-init-fn-name-fn language/statements/for/dstr-const-ary-ptrn-elem-id-init-fn-name-gen language/statements/for/dstr-const-ary-ptrn-elem-id-init-skipped -language/statements/for/dstr-const-ary-ptrn-elem-id-iter-step-err language/statements/for/dstr-const-ary-ptrn-elem-id-iter-val -language/statements/for/dstr-const-ary-ptrn-elem-id-iter-val-err language/statements/for/dstr-const-ary-ptrn-elision language/statements/for/dstr-const-ary-ptrn-elision-exhausted language/statements/for/dstr-const-ary-ptrn-elision-iter-close @@ -7474,8 +7306,6 @@ language/statements/for/dstr-const-obj-ptrn-id-init-fn-name-gen language/statements/for/dstr-const-obj-ptrn-prop-ary language/statements/for/dstr-const-obj-ptrn-prop-ary-init language/statements/for/dstr-let-ary-init-iter-close -language/statements/for/dstr-let-ary-init-iter-get-err -language/statements/for/dstr-let-ary-init-iter-no-close language/statements/for/dstr-let-ary-name-iter-val language/statements/for/dstr-let-ary-ptrn-elem-ary-elem-init language/statements/for/dstr-let-ary-ptrn-elem-ary-elem-iter @@ -7490,9 +7320,7 @@ language/statements/for/dstr-let-ary-ptrn-elem-id-init-fn-name-cover language/statements/for/dstr-let-ary-ptrn-elem-id-init-fn-name-fn language/statements/for/dstr-let-ary-ptrn-elem-id-init-fn-name-gen language/statements/for/dstr-let-ary-ptrn-elem-id-init-skipped -language/statements/for/dstr-let-ary-ptrn-elem-id-iter-step-err language/statements/for/dstr-let-ary-ptrn-elem-id-iter-val -language/statements/for/dstr-let-ary-ptrn-elem-id-iter-val-err language/statements/for/dstr-let-ary-ptrn-elision language/statements/for/dstr-let-ary-ptrn-elision-exhausted language/statements/for/dstr-let-ary-ptrn-elision-iter-close @@ -7520,7 +7348,6 @@ language/statements/for/dstr-let-obj-ptrn-prop-ary language/statements/for/dstr-let-obj-ptrn-prop-ary-init language/statements/for/dstr-var-ary-init-iter-close language/statements/for/dstr-var-ary-init-iter-get-err -language/statements/for/dstr-var-ary-init-iter-no-close language/statements/for/dstr-var-ary-name-iter-val language/statements/for/dstr-var-ary-ptrn-elem-ary-elem-init language/statements/for/dstr-var-ary-ptrn-elem-ary-elem-iter @@ -8196,8 +8023,6 @@ language/statements/function/dflt-params-ref-later language/statements/function/dflt-params-ref-self language/statements/function/dflt-params-trailing-comma language/statements/function/dstr-ary-init-iter-close -language/statements/function/dstr-ary-init-iter-get-err -language/statements/function/dstr-ary-init-iter-no-close language/statements/function/dstr-ary-name-iter-val language/statements/function/dstr-ary-ptrn-elem-ary-elem-init language/statements/function/dstr-ary-ptrn-elem-ary-elem-iter @@ -8212,9 +8037,7 @@ language/statements/function/dstr-ary-ptrn-elem-id-init-fn-name-cover language/statements/function/dstr-ary-ptrn-elem-id-init-fn-name-fn language/statements/function/dstr-ary-ptrn-elem-id-init-fn-name-gen language/statements/function/dstr-ary-ptrn-elem-id-init-skipped -language/statements/function/dstr-ary-ptrn-elem-id-iter-step-err language/statements/function/dstr-ary-ptrn-elem-id-iter-val -language/statements/function/dstr-ary-ptrn-elem-id-iter-val-err language/statements/function/dstr-ary-ptrn-elision language/statements/function/dstr-ary-ptrn-elision-exhausted language/statements/function/dstr-ary-ptrn-elision-step-err @@ -8232,8 +8055,6 @@ language/statements/function/dstr-ary-ptrn-rest-id-iter-val-err language/statements/function/dstr-ary-ptrn-rest-obj-id language/statements/function/dstr-ary-ptrn-rest-obj-prop-id language/statements/function/dstr-dflt-ary-init-iter-close -language/statements/function/dstr-dflt-ary-init-iter-get-err -language/statements/function/dstr-dflt-ary-init-iter-no-close language/statements/function/dstr-dflt-ary-name-iter-val language/statements/function/dstr-dflt-ary-ptrn-elem-ary-elem-init language/statements/function/dstr-dflt-ary-ptrn-elem-ary-elem-iter @@ -8248,9 +8069,7 @@ language/statements/function/dstr-dflt-ary-ptrn-elem-id-init-fn-name-cover language/statements/function/dstr-dflt-ary-ptrn-elem-id-init-fn-name-fn language/statements/function/dstr-dflt-ary-ptrn-elem-id-init-fn-name-gen language/statements/function/dstr-dflt-ary-ptrn-elem-id-init-skipped -language/statements/function/dstr-dflt-ary-ptrn-elem-id-iter-step-err language/statements/function/dstr-dflt-ary-ptrn-elem-id-iter-val -language/statements/function/dstr-dflt-ary-ptrn-elem-id-iter-val-err language/statements/function/dstr-dflt-ary-ptrn-elision language/statements/function/dstr-dflt-ary-ptrn-elision-exhausted language/statements/function/dstr-dflt-ary-ptrn-elision-step-err @@ -8517,8 +8336,6 @@ language/statements/let/block-local-use-before-initialization-in-declaration-sta language/statements/let/block-local-use-before-initialization-in-prior-statement language/statements/let/cptn-value language/statements/let/dstr-ary-init-iter-close -language/statements/let/dstr-ary-init-iter-get-err -language/statements/let/dstr-ary-init-iter-no-close language/statements/let/dstr-ary-name-iter-val language/statements/let/dstr-ary-ptrn-elem-ary-elem-init language/statements/let/dstr-ary-ptrn-elem-ary-elem-iter @@ -8533,9 +8350,7 @@ language/statements/let/dstr-ary-ptrn-elem-id-init-fn-name-cover language/statements/let/dstr-ary-ptrn-elem-id-init-fn-name-fn language/statements/let/dstr-ary-ptrn-elem-id-init-fn-name-gen language/statements/let/dstr-ary-ptrn-elem-id-init-skipped -language/statements/let/dstr-ary-ptrn-elem-id-iter-step-err language/statements/let/dstr-ary-ptrn-elem-id-iter-val -language/statements/let/dstr-ary-ptrn-elem-id-iter-val-err language/statements/let/dstr-ary-ptrn-elision language/statements/let/dstr-ary-ptrn-elision-exhausted language/statements/let/dstr-ary-ptrn-elision-step-err @@ -8681,8 +8496,6 @@ language/statements/try/tco-finally language/statements/variable/binding-resolution language/statements/variable/cptn-value language/statements/variable/dstr-ary-init-iter-close -language/statements/variable/dstr-ary-init-iter-get-err -language/statements/variable/dstr-ary-init-iter-no-close language/statements/variable/dstr-ary-name-iter-val language/statements/variable/dstr-ary-ptrn-elem-ary-elem-init language/statements/variable/dstr-ary-ptrn-elem-ary-elem-iter @@ -8697,9 +8510,7 @@ language/statements/variable/dstr-ary-ptrn-elem-id-init-fn-name-cover language/statements/variable/dstr-ary-ptrn-elem-id-init-fn-name-fn language/statements/variable/dstr-ary-ptrn-elem-id-init-fn-name-gen language/statements/variable/dstr-ary-ptrn-elem-id-init-skipped -language/statements/variable/dstr-ary-ptrn-elem-id-iter-step-err language/statements/variable/dstr-ary-ptrn-elem-id-iter-val -language/statements/variable/dstr-ary-ptrn-elem-id-iter-val-err language/statements/variable/dstr-ary-ptrn-elision language/statements/variable/dstr-ary-ptrn-elision-exhausted language/statements/variable/dstr-ary-ptrn-elision-step-err @@ -8729,16 +8540,11 @@ language/statements/while/let-block-with-newline language/statements/while/let-identifier-with-newline language/statements/while/tco-body language/statements/with/binding-blocked-by-unscopables -language/statements/with/binding-not-blocked-by-unscopables-falsey-prop -language/statements/with/binding-not-blocked-by-unscopables-non-obj language/statements/with/cptn-abrupt-empty language/statements/with/has-property-err language/statements/with/let-block-with-newline language/statements/with/let-identifier-with-newline -language/statements/with/unscopables-get-err language/statements/with/unscopables-inc-dec -language/statements/with/unscopables-not-referenced-for-undef -language/statements/with/unscopables-prop-get-err language/types/reference/get-value-prop-base-primitive language/types/reference/get-value-prop-base-primitive-realm language/types/reference/put-value-prop-base-primitive @@ -8762,4 +8568,4 @@ language/global-code/decl-lex-restricted-global language/statements/const/global-use-before-initialization-in-declaration-statement language/statements/const/global-use-before-initialization-in-prior-statement language/statements/let/global-use-before-initialization-in-declaration-statement -language/statements/let/global-use-before-initialization-in-prior-statement +language/statements/let/global-use-before-initialization-in-prior-statement
\ No newline at end of file diff --git a/tests/auto/qml/qjsengine/tst_qjsengine.cpp b/tests/auto/qml/qjsengine/tst_qjsengine.cpp index 4945a23302..0c86fb2611 100644 --- a/tests/auto/qml/qjsengine/tst_qjsengine.cpp +++ b/tests/auto/qml/qjsengine/tst_qjsengine.cpp @@ -944,6 +944,7 @@ void tst_QJSEngine::globalObjectProperties_enumerate() << "decodeURIComponent" << "Date" << "Array" + << "Symbol" << "escape" << "unescape" << "SyntaxError" |