From 4614dfe4105bfb6bf6b248a5223650fd370edbb2 Mon Sep 17 00:00:00 2001 From: Kent Hansen Date: Thu, 6 Aug 2009 11:21:59 +0200 Subject: give Error constructors DontEnum attribute As per ECMA-262, chapter 15. --- .../webkit/JavaScriptCore/runtime/JSGlobalObject.cpp | 12 ++++++------ tests/auto/qscriptengine/tst_qscriptengine.cpp | 6 ------ 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/JSGlobalObject.cpp b/src/3rdparty/webkit/JavaScriptCore/runtime/JSGlobalObject.cpp index c56b84b..3514040 100644 --- a/src/3rdparty/webkit/JavaScriptCore/runtime/JSGlobalObject.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/runtime/JSGlobalObject.cpp @@ -307,12 +307,12 @@ void JSGlobalObject::reset(JSValue prototype) putDirectFunctionWithoutTransition(Identifier(exec, "Date"), dateConstructor, DontEnum); putDirectFunctionWithoutTransition(Identifier(exec, "RegExp"), d()->regExpConstructor, DontEnum); putDirectFunctionWithoutTransition(Identifier(exec, "Error"), d()->errorConstructor, DontEnum); - putDirectFunctionWithoutTransition(Identifier(exec, "EvalError"), d()->evalErrorConstructor); - putDirectFunctionWithoutTransition(Identifier(exec, "RangeError"), d()->rangeErrorConstructor); - putDirectFunctionWithoutTransition(Identifier(exec, "ReferenceError"), d()->referenceErrorConstructor); - putDirectFunctionWithoutTransition(Identifier(exec, "SyntaxError"), d()->syntaxErrorConstructor); - putDirectFunctionWithoutTransition(Identifier(exec, "TypeError"), d()->typeErrorConstructor); - putDirectFunctionWithoutTransition(Identifier(exec, "URIError"), d()->URIErrorConstructor); + putDirectFunctionWithoutTransition(Identifier(exec, "EvalError"), d()->evalErrorConstructor, DontEnum); + putDirectFunctionWithoutTransition(Identifier(exec, "RangeError"), d()->rangeErrorConstructor, DontEnum); + putDirectFunctionWithoutTransition(Identifier(exec, "ReferenceError"), d()->referenceErrorConstructor, DontEnum); + putDirectFunctionWithoutTransition(Identifier(exec, "SyntaxError"), d()->syntaxErrorConstructor, DontEnum); + putDirectFunctionWithoutTransition(Identifier(exec, "TypeError"), d()->typeErrorConstructor, DontEnum); + putDirectFunctionWithoutTransition(Identifier(exec, "URIError"), d()->URIErrorConstructor, DontEnum); // Set global values. GlobalPropertyInfo staticGlobals[] = { diff --git a/tests/auto/qscriptengine/tst_qscriptengine.cpp b/tests/auto/qscriptengine/tst_qscriptengine.cpp index 7f22316..fca0983 100644 --- a/tests/auto/qscriptengine/tst_qscriptengine.cpp +++ b/tests/auto/qscriptengine/tst_qscriptengine.cpp @@ -1002,22 +1002,16 @@ void tst_QScriptEngine::globalObjectProperties() QVERIFY(global.property("Error").isFunction()); QCOMPARE(global.propertyFlags("Error"), QScriptValue::SkipInEnumeration); QVERIFY(global.property("EvalError").isFunction()); - QEXPECT_FAIL("", "[ECMA compliance] JSC doesn't set DontEnum flag for Error constructors", Continue); QCOMPARE(global.propertyFlags("EvalError"), QScriptValue::SkipInEnumeration); QVERIFY(global.property("RangeError").isFunction()); - QEXPECT_FAIL("", "[ECMA compliance] JSC doesn't set DontEnum flag for Error constructors", Continue); QCOMPARE(global.propertyFlags("RangeError"), QScriptValue::SkipInEnumeration); QVERIFY(global.property("ReferenceError").isFunction()); - QEXPECT_FAIL("", "[ECMA compliance] JSC doesn't set DontEnum flag for Error constructors", Continue); QCOMPARE(global.propertyFlags("ReferenceError"), QScriptValue::SkipInEnumeration); QVERIFY(global.property("SyntaxError").isFunction()); - QEXPECT_FAIL("", "[ECMA compliance] JSC doesn't set DontEnum flag for Error constructors", Continue); QCOMPARE(global.propertyFlags("SyntaxError"), QScriptValue::SkipInEnumeration); QVERIFY(global.property("TypeError").isFunction()); - QEXPECT_FAIL("", "[ECMA compliance] JSC doesn't set DontEnum flag for Error constructors", Continue); QCOMPARE(global.propertyFlags("TypeError"), QScriptValue::SkipInEnumeration); QVERIFY(global.property("URIError").isFunction()); - QEXPECT_FAIL("", "[ECMA compliance] JSC doesn't set DontEnum flag for Error constructors", Continue); QCOMPARE(global.propertyFlags("URIError"), QScriptValue::SkipInEnumeration); QVERIFY(global.property("Math").isObject()); QVERIFY(!global.property("Math").isFunction()); -- cgit v0.12