aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/qml/jsruntime/jsruntime.pri2
-rw-r--r--src/qml/jsruntime/qv4engine.cpp30
-rw-r--r--src/qml/jsruntime/qv4engine_p.h4
-rw-r--r--src/qml/jsruntime/qv4enginebase_p.h2
-rw-r--r--src/qml/jsruntime/qv4global_p.h5
-rw-r--r--src/qml/jsruntime/qv4lookup.cpp7
-rw-r--r--src/qml/jsruntime/qv4managed.cpp7
-rw-r--r--src/qml/jsruntime/qv4managed_p.h1
-rw-r--r--src/qml/jsruntime/qv4objectproto.cpp10
-rw-r--r--src/qml/jsruntime/qv4runtime.cpp39
-rw-r--r--src/qml/jsruntime/qv4string.cpp3
-rw-r--r--src/qml/jsruntime/qv4string_p.h6
-rw-r--r--src/qml/jsruntime/qv4stringobject.cpp14
-rw-r--r--src/qml/jsruntime/qv4symbol.cpp116
-rw-r--r--src/qml/jsruntime/qv4symbol_p.h105
-rw-r--r--src/qml/jsruntime/qv4value.cpp3
-rw-r--r--src/qml/jsruntime/qv4value_p.h19
-rw-r--r--tests/auto/qml/ecmascripttests/TestExpectations196
-rw-r--r--tests/auto/qml/qjsengine/tst_qjsengine.cpp1
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"