Diff
Modified: trunk/LayoutTests/ChangeLog (191862 => 191863)
--- trunk/LayoutTests/ChangeLog 2015-11-01 22:44:33 UTC (rev 191862)
+++ trunk/LayoutTests/ChangeLog 2015-11-01 22:59:45 UTC (rev 191863)
@@ -1,3 +1,20 @@
+2015-11-01 Commit Queue <commit-qu...@webkit.org>
+
+ Unreviewed, rolling out r191815 and r191821.
+ https://bugs.webkit.org/show_bug.cgi?id=150781
+
+ Seems to have broken JSC API tests on some platforms
+ (Requested by ap on #webkit).
+
+ Reverted changesets:
+
+ "[ES6] Add support for toStringTag"
+ https://bugs.webkit.org/show_bug.cgi?id=150696
+ http://trac.webkit.org/changeset/191815
+
+ "Unreviewed, forgot to mark tests as passing for new feature."
+ http://trac.webkit.org/changeset/191821
+
2015-10-31 Brady Eidson <beid...@apple.com>
IDB: Date objects don't work as keys or values.
Modified: trunk/LayoutTests/http/tests/history/cross-origin-replace-history-object-child-expected.txt (191862 => 191863)
--- trunk/LayoutTests/http/tests/history/cross-origin-replace-history-object-child-expected.txt 2015-11-01 22:44:33 UTC (rev 191862)
+++ trunk/LayoutTests/http/tests/history/cross-origin-replace-history-object-child-expected.txt 2015-11-01 22:59:45 UTC (rev 191863)
@@ -1,9 +1,7 @@
CONSOLE MESSAGE: line 30: Blocked a frame with origin "http://127.0.0.1:8000" from accessing a frame with origin "http://localhost:8000". Protocols, domains, and ports must match.
-CONSOLE MESSAGE: line 24: Blocked a frame with origin "http://127.0.0.1:8000" from accessing a frame with origin "http://localhost:8000". Protocols, domains, and ports must match.
ALERT: Child window's history object before attempt to clear: [object History]
ALERT: About to shadow child window's history object: [object History]
ALERT: Shadowed child window's history object:
CONSOLE MESSAGE: line 18: Blocked a frame with origin "http://127.0.0.1:8000" from accessing a frame with origin "http://localhost:8000". Protocols, domains, and ports must match.
-CONSOLE MESSAGE: line 18: Blocked a frame with origin "http://127.0.0.1:8000" from accessing a frame with origin "http://localhost:8000". Protocols, domains, and ports must match.
ALERT: Child window's history object after attempt to clear: [object History]
Modified: trunk/LayoutTests/http/tests/security/cross-frame-access-custom-expected.txt (191862 => 191863)
--- trunk/LayoutTests/http/tests/security/cross-frame-access-custom-expected.txt 2015-11-01 22:44:33 UTC (rev 191862)
+++ trunk/LayoutTests/http/tests/security/cross-frame-access-custom-expected.txt 2015-11-01 22:59:45 UTC (rev 191863)
@@ -16,7 +16,6 @@
CONSOLE MESSAGE: line 81: Blocked a frame with origin "http://127.0.0.1:8000" from accessing a frame with origin "http://localhost:8000". Protocols, domains, and ports must match.
CONSOLE MESSAGE: line 82: Blocked a frame with origin "http://127.0.0.1:8000" from accessing a frame with origin "http://localhost:8000". Protocols, domains, and ports must match.
CONSOLE MESSAGE: line 81: Blocked a frame with origin "http://127.0.0.1:8000" from accessing a frame with origin "http://localhost:8000". Protocols, domains, and ports must match.
-CONSOLE MESSAGE: line 107: Blocked a frame with origin "http://127.0.0.1:8000" from accessing a frame with origin "http://localhost:8000". Protocols, domains, and ports must match.
----- tests for getting/setting interesting properties -----
Modified: trunk/LayoutTests/http/tests/security/cross-frame-access-history-get-expected.txt (191862 => 191863)
--- trunk/LayoutTests/http/tests/security/cross-frame-access-history-get-expected.txt 2015-11-01 22:44:33 UTC (rev 191862)
+++ trunk/LayoutTests/http/tests/security/cross-frame-access-history-get-expected.txt 2015-11-01 22:59:45 UTC (rev 191863)
@@ -1,5 +1,4 @@
CONSOLE MESSAGE: line 55: Blocked a frame with origin "http://127.0.0.1:8000" from accessing a frame with origin "http://localhost:8000". Protocols, domains, and ports must match.
-CONSOLE MESSAGE: line 107: Blocked a frame with origin "http://127.0.0.1:8000" from accessing a frame with origin "http://localhost:8000". Protocols, domains, and ports must match.
CONSOLE MESSAGE: line 55: Blocked a frame with origin "http://127.0.0.1:8000" from accessing a frame with origin "http://localhost:8000". Protocols, domains, and ports must match.
CONSOLE MESSAGE: line 55: Blocked a frame with origin "http://127.0.0.1:8000" from accessing a frame with origin "http://localhost:8000". Protocols, domains, and ports must match.
CONSOLE MESSAGE: line 55: Blocked a frame with origin "http://127.0.0.1:8000" from accessing a frame with origin "http://localhost:8000". Protocols, domains, and ports must match.
Modified: trunk/LayoutTests/http/tests/security/cross-frame-access-object-setPrototypeOf-expected.txt (191862 => 191863)
--- trunk/LayoutTests/http/tests/security/cross-frame-access-object-setPrototypeOf-expected.txt 2015-11-01 22:44:33 UTC (rev 191862)
+++ trunk/LayoutTests/http/tests/security/cross-frame-access-object-setPrototypeOf-expected.txt 2015-11-01 22:59:45 UTC (rev 191863)
@@ -1,9 +1,7 @@
CONSOLE MESSAGE: line 1: Blocked a frame with origin "http://127.0.0.1:8000" from accessing a frame with origin "http://localhost:8000". Protocols, domains, and ports must match.
CONSOLE MESSAGE: line 23: Blocked a frame with origin "http://127.0.0.1:8000" from accessing a frame with origin "http://localhost:8000". Protocols, domains, and ports must match.
-CONSOLE MESSAGE: line 25: Blocked a frame with origin "http://127.0.0.1:8000" from accessing a frame with origin "http://localhost:8000". Protocols, domains, and ports must match.
CONSOLE MESSAGE: line 1: Blocked a frame with origin "http://127.0.0.1:8000" from accessing a frame with origin "http://localhost:8000". Protocols, domains, and ports must match.
CONSOLE MESSAGE: line 24: Blocked a frame with origin "http://127.0.0.1:8000" from accessing a frame with origin "http://localhost:8000". Protocols, domains, and ports must match.
-CONSOLE MESSAGE: line 25: Blocked a frame with origin "http://127.0.0.1:8000" from accessing a frame with origin "http://localhost:8000". Protocols, domains, and ports must match.
This tests that you can't set the prototype of the window or history objects cross-origin using Object.setPrototypeOf().
PASS: targetWindow instanceof Array should be 'false' and is.
Modified: trunk/LayoutTests/js/Object-getOwnPropertyNames-expected.txt (191862 => 191863)
--- trunk/LayoutTests/js/Object-getOwnPropertyNames-expected.txt 2015-11-01 22:44:33 UTC (rev 191862)
+++ trunk/LayoutTests/js/Object-getOwnPropertyNames-expected.txt 2015-11-01 22:59:45 UTC (rev 191863)
@@ -61,7 +61,7 @@
PASS getSortedOwnPropertyNames(Error.prototype) is ['constructor', 'message', 'name', 'toString']
PASS getSortedOwnPropertyNames(Math) is ['E','LN10','LN2','LOG10E','LOG2E','PI','SQRT1_2','SQRT2','abs','acos','acosh','asin','asinh','atan','atan2','atanh','cbrt','ceil','clz32','cos','cosh','exp','expm1','floor','fround','hypot','imul','log','log10','log1p','log2','max','min','pow','random','round','sign','sin','sinh','sqrt','tan','tanh','trunc']
PASS getSortedOwnPropertyNames(JSON) is ['parse', 'stringify']
-PASS getSortedOwnPropertyNames(Symbol) is ['for', 'iterator', 'keyFor', 'length', 'name', 'prototype', 'toStringTag', 'unscopables']
+PASS getSortedOwnPropertyNames(Symbol) is ['for', 'iterator', 'keyFor', 'length', 'name', 'prototype', 'unscopables']
PASS getSortedOwnPropertyNames(Symbol.prototype) is ['constructor', 'toString', 'valueOf']
PASS globalPropertyNames.indexOf('NaN') != -1 is true
PASS globalPropertyNames.indexOf('Infinity') != -1 is true
Modified: trunk/LayoutTests/js/script-tests/Object-getOwnPropertyNames.js (191862 => 191863)
--- trunk/LayoutTests/js/script-tests/Object-getOwnPropertyNames.js 2015-11-01 22:44:33 UTC (rev 191862)
+++ trunk/LayoutTests/js/script-tests/Object-getOwnPropertyNames.js 2015-11-01 22:59:45 UTC (rev 191863)
@@ -70,7 +70,7 @@
"Error.prototype": "['constructor', 'message', 'name', 'toString']",
"Math": "['E','LN10','LN2','LOG10E','LOG2E','PI','SQRT1_2','SQRT2','abs','acos','acosh','asin','asinh','atan','atan2','atanh','cbrt','ceil','clz32','cos','cosh','exp','expm1','floor','fround','hypot','imul','log','log10','log1p','log2','max','min','pow','random','round','sign','sin','sinh','sqrt','tan','tanh','trunc']",
"JSON": "['parse', 'stringify']",
- "Symbol": "['for', 'iterator', 'keyFor', 'length', 'name', 'prototype', 'toStringTag', 'unscopables']",
+ "Symbol": "['for', 'iterator', 'keyFor', 'length', 'name', 'prototype', 'unscopables']",
"Symbol.prototype": "['constructor', 'toString', 'valueOf']"
};
Modified: trunk/Source/_javascript_Core/ChangeLog (191862 => 191863)
--- trunk/Source/_javascript_Core/ChangeLog 2015-11-01 22:44:33 UTC (rev 191862)
+++ trunk/Source/_javascript_Core/ChangeLog 2015-11-01 22:59:45 UTC (rev 191863)
@@ -1,5 +1,22 @@
2015-11-01 Commit Queue <commit-qu...@webkit.org>
+ Unreviewed, rolling out r191815 and r191821.
+ https://bugs.webkit.org/show_bug.cgi?id=150781
+
+ Seems to have broken JSC API tests on some platforms
+ (Requested by ap on #webkit).
+
+ Reverted changesets:
+
+ "[ES6] Add support for toStringTag"
+ https://bugs.webkit.org/show_bug.cgi?id=150696
+ http://trac.webkit.org/changeset/191815
+
+ "Unreviewed, forgot to mark tests as passing for new feature."
+ http://trac.webkit.org/changeset/191821
+
+2015-11-01 Commit Queue <commit-qu...@webkit.org>
+
Unreviewed, rolling out r191858.
https://bugs.webkit.org/show_bug.cgi?id=150780
Modified: trunk/Source/_javascript_Core/runtime/ArrayIteratorPrototype.cpp (191862 => 191863)
--- trunk/Source/_javascript_Core/runtime/ArrayIteratorPrototype.cpp 2015-11-01 22:44:33 UTC (rev 191862)
+++ trunk/Source/_javascript_Core/runtime/ArrayIteratorPrototype.cpp 2015-11-01 22:59:45 UTC (rev 191863)
@@ -56,7 +56,6 @@
{
Base::finishCreation(vm);
ASSERT(inherits(info()));
- putDirectWithoutTransition(vm, vm.propertyNames->toStringTagSymbol, jsString(&vm, "Array Iterator"), DontEnum | ReadOnly);
vm.prototypeMap.addPrototype(this);
}
Modified: trunk/Source/_javascript_Core/runtime/CommonIdentifiers.h (191862 => 191863)
--- trunk/Source/_javascript_Core/runtime/CommonIdentifiers.h 2015-11-01 22:44:33 UTC (rev 191862)
+++ trunk/Source/_javascript_Core/runtime/CommonIdentifiers.h 2015-11-01 22:59:45 UTC (rev 191863)
@@ -256,12 +256,12 @@
macro(search) \
macro(species) \
macro(split) \
- macro(toPrimitive)
+ macro(toPrimitive) \
+ macro(toStringTag)
#define JSC_COMMON_PRIVATE_IDENTIFIERS_EACH_WELL_KNOWN_SYMBOL(macro) \
macro(iterator) \
- macro(unscopables) \
- macro(toStringTag)
+ macro(unscopables)
#define JSC_COMMON_BYTECODE_INTRINSICS_EACH_NAME(macro) \
macro(putByValDirect) \
Modified: trunk/Source/_javascript_Core/runtime/JSArrayBufferPrototype.cpp (191862 => 191863)
--- trunk/Source/_javascript_Core/runtime/JSArrayBufferPrototype.cpp 2015-11-01 22:44:33 UTC (rev 191862)
+++ trunk/Source/_javascript_Core/runtime/JSArrayBufferPrototype.cpp 2015-11-01 22:59:45 UTC (rev 191863)
@@ -83,7 +83,6 @@
Base::finishCreation(vm);
JSC_NATIVE_FUNCTION(vm.propertyNames->slice, arrayBufferProtoFuncSlice, DontEnum, 2);
- putDirectWithoutTransition(vm, vm.propertyNames->toStringTagSymbol, jsString(&vm, "ArrayBuffer"), DontEnum | ReadOnly);
}
JSArrayBufferPrototype* JSArrayBufferPrototype::create(VM& vm, JSGlobalObject* globalObject, Structure* structure)
Modified: trunk/Source/_javascript_Core/runtime/JSDataViewPrototype.cpp (191862 => 191863)
--- trunk/Source/_javascript_Core/runtime/JSDataViewPrototype.cpp 2015-11-01 22:44:33 UTC (rev 191862)
+++ trunk/Source/_javascript_Core/runtime/JSDataViewPrototype.cpp 2015-11-01 22:59:45 UTC (rev 191863)
@@ -99,12 +99,6 @@
return prototype;
}
-void JSDataViewPrototype::finishCreation(JSC::VM& vm)
-{
- Base::finishCreation(vm);
- putDirectWithoutTransition(vm, vm.propertyNames->toStringTagSymbol, jsString(&vm, "DataView"), DontEnum | ReadOnly);
-}
-
Structure* JSDataViewPrototype::createStructure(
VM& vm, JSGlobalObject* globalObject, JSValue prototype)
{
Modified: trunk/Source/_javascript_Core/runtime/JSDataViewPrototype.h (191862 => 191863)
--- trunk/Source/_javascript_Core/runtime/JSDataViewPrototype.h 2015-11-01 22:44:33 UTC (rev 191862)
+++ trunk/Source/_javascript_Core/runtime/JSDataViewPrototype.h 2015-11-01 22:59:45 UTC (rev 191863)
@@ -38,8 +38,6 @@
protected:
JSDataViewPrototype(VM&, Structure*);
- void finishCreation(VM&);
-
public:
static JSDataViewPrototype* create(VM&, Structure*);
Modified: trunk/Source/_javascript_Core/runtime/JSModuleNamespaceObject.cpp (191862 => 191863)
--- trunk/Source/_javascript_Core/runtime/JSModuleNamespaceObject.cpp 2015-11-01 22:44:33 UTC (rev 191862)
+++ trunk/Source/_javascript_Core/runtime/JSModuleNamespaceObject.cpp 2015-11-01 22:59:45 UTC (rev 191863)
@@ -72,7 +72,6 @@
m_moduleRecord.set(vm, this, moduleRecord);
JSC_NATIVE_FUNCTION(vm.propertyNames->iteratorSymbol, moduleNamespaceObjectSymbolIterator, DontEnum, 0);
- putDirect(vm, vm.propertyNames->toStringTagSymbol, jsString(&vm, "Module"), DontEnum | ReadOnly);
// http://www.ecma-international.org/ecma-262/6.0/#sec-module-namespace-exotic-objects-getprototypeof
// http://www.ecma-international.org/ecma-262/6.0/#sec-module-namespace-exotic-objects-setprototypeof-v
Modified: trunk/Source/_javascript_Core/runtime/JSONObject.cpp (191862 => 191863)
--- trunk/Source/_javascript_Core/runtime/JSONObject.cpp 2015-11-01 22:44:33 UTC (rev 191862)
+++ trunk/Source/_javascript_Core/runtime/JSONObject.cpp 2015-11-01 22:59:45 UTC (rev 191863)
@@ -63,8 +63,6 @@
{
Base::finishCreation(vm);
ASSERT(inherits(info()));
-
- putDirectWithoutTransition(vm, vm.propertyNames->toStringTagSymbol, jsString(&vm, "JSON"), DontEnum | ReadOnly);
}
// PropertyNameForFunctionCall objects must be on the stack, since the JSValue that they create is not marked.
Modified: trunk/Source/_javascript_Core/runtime/JSPromisePrototype.cpp (191862 => 191863)
--- trunk/Source/_javascript_Core/runtime/JSPromisePrototype.cpp 2015-11-01 22:44:33 UTC (rev 191862)
+++ trunk/Source/_javascript_Core/runtime/JSPromisePrototype.cpp 2015-11-01 22:59:45 UTC (rev 191863)
@@ -74,7 +74,6 @@
void JSPromisePrototype::finishCreation(VM& vm, Structure*)
{
Base::finishCreation(vm);
- putDirectWithoutTransition(vm, vm.propertyNames->toStringTagSymbol, jsString(&vm, "Promise"), DontEnum | ReadOnly);
}
bool JSPromisePrototype::getOwnPropertySlot(JSObject* object, ExecState* exec, PropertyName propertyName, PropertySlot& slot)
Modified: trunk/Source/_javascript_Core/runtime/JSTypedArrayViewPrototype.cpp (191862 => 191863)
--- trunk/Source/_javascript_Core/runtime/JSTypedArrayViewPrototype.cpp 2015-11-01 22:44:33 UTC (rev 191862)
+++ trunk/Source/_javascript_Core/runtime/JSTypedArrayViewPrototype.cpp 2015-11-01 22:59:45 UTC (rev 191863)
@@ -200,40 +200,6 @@
CALL_GENERIC_TYPEDARRAY_PROTOTYPE_FUNCTION(typedArrayViewProtoFuncValues);
}
-static EncodedJSValue JSC_HOST_CALL typedArrayViewProtoGetterFuncToStringTag(ExecState* exec)
-{
- JSValue thisValue = exec->thisValue();
- if (!thisValue.isObject())
- return throwVMError(exec, createTypeError(exec, "Receiver should be a typed array view but was not an object"));
-
- VM& vm = exec->vm();
- switch (thisValue.getObject()->classInfo()->typedArrayStorageType) {
- case TypeUint8Clamped:
- return JSValue::encode(jsString(&vm, "Uint8ClampedArray"));
- case TypeInt32:
- return JSValue::encode(jsString(&vm, "Int32Array"));
- case TypeUint32:
- return JSValue::encode(jsString(&vm, "Uint32Array"));
- case TypeFloat64:
- return JSValue::encode(jsString(&vm, "Float64Array"));
- case TypeFloat32:
- return JSValue::encode(jsString(&vm, "Float32Array"));
- case TypeInt8:
- return JSValue::encode(jsString(&vm, "Int8Array"));
- case TypeUint8:
- return JSValue::encode(jsString(&vm, "Uint8Array"));
- case TypeInt16:
- return JSValue::encode(jsString(&vm, "Int16Array"));
- case TypeUint16:
- return JSValue::encode(jsString(&vm, "Uint16Array"));
- case NotTypedArray:
- case TypeDataView:
- return throwVMError(exec, createTypeError(exec, "Receiver should be a typed array view"));
- }
- RELEASE_ASSERT_NOT_REACHED();
-}
-
-
#undef CALL_GENERIC_TYPEDARRAY_PROTOTYPE_FUNCTION
JSTypedArrayViewPrototype::JSTypedArrayViewPrototype(VM& vm, Structure* structure)
@@ -273,7 +239,6 @@
JSC_NATIVE_FUNCTION(vm.propertyNames->subarray, typedArrayViewProtoFuncSubarray, DontEnum, 2);
JSC_BUILTIN_FUNCTION(vm.propertyNames->toLocaleString, typedArrayPrototypeToLocaleStringCodeGenerator, DontEnum);
JSC_NATIVE_FUNCTION(vm.propertyNames->toString, arrayProtoFuncToString, DontEnum, 0);
- JSC_NATIVE_GETTER(vm.propertyNames->toStringTagSymbol, typedArrayViewProtoGetterFuncToStringTag, DontEnum | ReadOnly);
JSFunction* valuesFunction = JSFunction::create(vm, globalObject, 0, vm.propertyNames->values.string(), typedArrayViewProtoFuncValues);
Modified: trunk/Source/_javascript_Core/runtime/MapIteratorPrototype.cpp (191862 => 191863)
--- trunk/Source/_javascript_Core/runtime/MapIteratorPrototype.cpp 2015-11-01 22:44:33 UTC (rev 191862)
+++ trunk/Source/_javascript_Core/runtime/MapIteratorPrototype.cpp 2015-11-01 22:59:45 UTC (rev 191863)
@@ -45,7 +45,6 @@
vm.prototypeMap.addPrototype(this);
JSC_NATIVE_FUNCTION(vm.propertyNames->next, MapIteratorPrototypeFuncNext, DontEnum, 0);
- putDirectWithoutTransition(vm, vm.propertyNames->toStringTagSymbol, jsString(&vm, "Map Iterator"), DontEnum | ReadOnly);
}
EncodedJSValue JSC_HOST_CALL MapIteratorPrototypeFuncNext(CallFrame* callFrame)
Modified: trunk/Source/_javascript_Core/runtime/MapPrototype.cpp (191862 => 191863)
--- trunk/Source/_javascript_Core/runtime/MapPrototype.cpp 2015-11-01 22:44:33 UTC (rev 191862)
+++ trunk/Source/_javascript_Core/runtime/MapPrototype.cpp 2015-11-01 22:59:45 UTC (rev 191863)
@@ -75,7 +75,6 @@
JSFunction* entries = JSFunction::create(vm, globalObject, 0, vm.propertyNames->entries.string(), mapProtoFuncEntries);
putDirectWithoutTransition(vm, vm.propertyNames->entries, entries, DontEnum);
putDirectWithoutTransition(vm, vm.propertyNames->iteratorSymbol, entries, DontEnum);
- putDirectWithoutTransition(vm, vm.propertyNames->toStringTagSymbol, jsString(&vm, "Map"), DontEnum | ReadOnly);
GetterSetter* accessor = GetterSetter::create(vm, globalObject);
JSFunction* function = JSFunction::create(vm, globalObject, 0, vm.propertyNames->size.string(), mapProtoFuncSize);
Modified: trunk/Source/_javascript_Core/runtime/MathObject.cpp (191862 => 191863)
--- trunk/Source/_javascript_Core/runtime/MathObject.cpp 2015-11-01 22:44:33 UTC (rev 191862)
+++ trunk/Source/_javascript_Core/runtime/MathObject.cpp 2015-11-01 22:59:45 UTC (rev 191863)
@@ -94,7 +94,6 @@
putDirectWithoutTransition(vm, Identifier::fromString(&vm, "PI"), jsNumber(piDouble), DontDelete | DontEnum | ReadOnly);
putDirectWithoutTransition(vm, Identifier::fromString(&vm, "SQRT1_2"), jsNumber(sqrt(0.5)), DontDelete | DontEnum | ReadOnly);
putDirectWithoutTransition(vm, Identifier::fromString(&vm, "SQRT2"), jsNumber(sqrt(2.0)), DontDelete | DontEnum | ReadOnly);
- putDirectWithoutTransition(vm, vm.propertyNames->toStringTagSymbol, jsString(&vm, "Math"), DontEnum | ReadOnly);
putDirectNativeFunctionWithoutTransition(vm, globalObject, Identifier::fromString(&vm, "abs"), 1, mathProtoFuncAbs, AbsIntrinsic, DontEnum);
putDirectNativeFunctionWithoutTransition(vm, globalObject, Identifier::fromString(&vm, "acos"), 1, mathProtoFuncACos, NoIntrinsic, DontEnum);
Modified: trunk/Source/_javascript_Core/runtime/ObjectPrototype.cpp (191862 => 191863)
--- trunk/Source/_javascript_Core/runtime/ObjectPrototype.cpp 2015-11-01 22:44:33 UTC (rev 191862)
+++ trunk/Source/_javascript_Core/runtime/ObjectPrototype.cpp 2015-11-01 22:59:45 UTC (rev 191863)
@@ -26,7 +26,6 @@
#include "JSFunction.h"
#include "JSString.h"
#include "JSCInlines.h"
-#include "PropertySlot.h"
#include "StructureRareDataInlines.h"
namespace JSC {
@@ -244,15 +243,6 @@
return JSValue::encode(thisValue.isUndefined() ? vm.smallStrings.undefinedObjectString() : vm.smallStrings.nullObjectString());
JSObject* thisObject = thisValue.toObject(exec);
- JSValue stringTag = thisObject->get(exec, exec->propertyNames().toStringTagSymbol);
- if (stringTag.isString()) {
- JSRopeString::RopeBuilder ropeBuilder(vm);
- ropeBuilder.append(vm.smallStrings.objectStringStart());
- ropeBuilder.append(jsCast<JSString*>(stringTag));
- ropeBuilder.append(vm.smallStrings.singleCharacterString(']'));
- return JSValue::encode(ropeBuilder.release());
- }
-
JSString* result = thisObject->structure(vm)->objectToStringValue();
if (!result) {
String newString = WTF::tryMakeString("[object ", thisObject->methodTable(exec->vm())->className(thisObject), "]");
Modified: trunk/Source/_javascript_Core/runtime/SetIteratorPrototype.cpp (191862 => 191863)
--- trunk/Source/_javascript_Core/runtime/SetIteratorPrototype.cpp 2015-11-01 22:44:33 UTC (rev 191862)
+++ trunk/Source/_javascript_Core/runtime/SetIteratorPrototype.cpp 2015-11-01 22:59:45 UTC (rev 191863)
@@ -45,7 +45,6 @@
vm.prototypeMap.addPrototype(this);
JSC_NATIVE_FUNCTION(vm.propertyNames->next, SetIteratorPrototypeFuncNext, DontEnum, 0);
- putDirectWithoutTransition(vm, vm.propertyNames->toStringTagSymbol, jsString(&vm, "Set Iterator"), DontEnum | ReadOnly);
}
EncodedJSValue JSC_HOST_CALL SetIteratorPrototypeFuncNext(CallFrame* callFrame)
Modified: trunk/Source/_javascript_Core/runtime/SetPrototype.cpp (191862 => 191863)
--- trunk/Source/_javascript_Core/runtime/SetPrototype.cpp 2015-11-01 22:44:33 UTC (rev 191862)
+++ trunk/Source/_javascript_Core/runtime/SetPrototype.cpp 2015-11-01 22:59:45 UTC (rev 191863)
@@ -69,7 +69,6 @@
putDirectWithoutTransition(vm, vm.propertyNames->values, values, DontEnum);
putDirectWithoutTransition(vm, vm.propertyNames->keys, values, DontEnum);
putDirectWithoutTransition(vm, vm.propertyNames->iteratorSymbol, values, DontEnum);
- putDirectWithoutTransition(vm, vm.propertyNames->toStringTagSymbol, jsString(&vm, "Set"), DontEnum | ReadOnly);
GetterSetter* accessor = GetterSetter::create(vm, globalObject);
JSFunction* function = JSFunction::create(vm, globalObject, 0, vm.propertyNames->size.string(), setProtoFuncSize);
Modified: trunk/Source/_javascript_Core/runtime/SmallStrings.cpp (191862 => 191863)
--- trunk/Source/_javascript_Core/runtime/SmallStrings.cpp 2015-11-01 22:44:33 UTC (rev 191862)
+++ trunk/Source/_javascript_Core/runtime/SmallStrings.cpp 2015-11-01 22:59:45 UTC (rev 191863)
@@ -66,7 +66,6 @@
#define JSC_COMMON_STRINGS_ATTRIBUTE_INITIALIZE(name) , m_##name(0)
JSC_COMMON_STRINGS_EACH_NAME(JSC_COMMON_STRINGS_ATTRIBUTE_INITIALIZE)
#undef JSC_COMMON_STRINGS_ATTRIBUTE_INITIALIZE
- , m_objectStringStart(nullptr)
, m_nullObjectString(nullptr)
, m_undefinedObjectString(nullptr)
, m_needsToBeVisited(true)
@@ -85,7 +84,6 @@
#define JSC_COMMON_STRINGS_ATTRIBUTE_INITIALIZE(name) initialize(&vm, m_##name, #name);
JSC_COMMON_STRINGS_EACH_NAME(JSC_COMMON_STRINGS_ATTRIBUTE_INITIALIZE)
#undef JSC_COMMON_STRINGS_ATTRIBUTE_INITIALIZE
- initialize(&vm, m_objectStringStart, "[object ");
initialize(&vm, m_nullObjectString, "[object Null]");
initialize(&vm, m_undefinedObjectString, "[object Undefined]");
}
@@ -99,7 +97,6 @@
#define JSC_COMMON_STRINGS_ATTRIBUTE_VISIT(name) visitor.appendUnbarrieredPointer(&m_##name);
JSC_COMMON_STRINGS_EACH_NAME(JSC_COMMON_STRINGS_ATTRIBUTE_VISIT)
#undef JSC_COMMON_STRINGS_ATTRIBUTE_VISIT
- visitor.appendUnbarrieredPointer(&m_objectStringStart);
visitor.appendUnbarrieredPointer(&m_nullObjectString);
visitor.appendUnbarrieredPointer(&m_undefinedObjectString);
}
Modified: trunk/Source/_javascript_Core/runtime/SmallStrings.h (191862 => 191863)
--- trunk/Source/_javascript_Core/runtime/SmallStrings.h 2015-11-01 22:44:33 UTC (rev 191862)
+++ trunk/Source/_javascript_Core/runtime/SmallStrings.h 2015-11-01 22:59:45 UTC (rev 191863)
@@ -109,7 +109,6 @@
return nullptr;
}
- JSString* objectStringStart() const { return m_objectStringStart; }
JSString* nullObjectString() const { return m_nullObjectString; }
JSString* undefinedObjectString() const { return m_undefinedObjectString; }
@@ -132,7 +131,6 @@
#define JSC_COMMON_STRINGS_ATTRIBUTE_DECLARATION(name) JSString* m_##name;
JSC_COMMON_STRINGS_EACH_NAME(JSC_COMMON_STRINGS_ATTRIBUTE_DECLARATION)
#undef JSC_COMMON_STRINGS_ATTRIBUTE_DECLARATION
- JSString* m_objectStringStart;
JSString* m_nullObjectString;
JSString* m_undefinedObjectString;
JSString* m_singleCharacterStrings[singleCharacterStringCount];
Modified: trunk/Source/_javascript_Core/runtime/StringIteratorPrototype.cpp (191862 => 191863)
--- trunk/Source/_javascript_Core/runtime/StringIteratorPrototype.cpp 2015-11-01 22:44:33 UTC (rev 191862)
+++ trunk/Source/_javascript_Core/runtime/StringIteratorPrototype.cpp 2015-11-01 22:59:45 UTC (rev 191863)
@@ -54,7 +54,6 @@
{
Base::finishCreation(vm);
ASSERT(inherits(info()));
- putDirectWithoutTransition(vm, vm.propertyNames->toStringTagSymbol, jsString(&vm, "String Iterator"), DontEnum | ReadOnly);
vm.prototypeMap.addPrototype(this);
}
Modified: trunk/Source/_javascript_Core/runtime/SymbolPrototype.cpp (191862 => 191863)
--- trunk/Source/_javascript_Core/runtime/SymbolPrototype.cpp 2015-11-01 22:44:33 UTC (rev 191862)
+++ trunk/Source/_javascript_Core/runtime/SymbolPrototype.cpp 2015-11-01 22:59:45 UTC (rev 191863)
@@ -29,7 +29,6 @@
#include "Error.h"
#include "JSCInlines.h"
-#include "JSString.h"
namespace JSC {
@@ -59,7 +58,6 @@
void SymbolPrototype::finishCreation(VM& vm)
{
Base::finishCreation(vm);
- putDirectWithoutTransition(vm, vm.propertyNames->toStringTagSymbol, jsString(&vm, "Symbol"), DontEnum | ReadOnly);
ASSERT(inherits(info()));
}
Modified: trunk/Source/_javascript_Core/runtime/WeakMapPrototype.cpp (191862 => 191863)
--- trunk/Source/_javascript_Core/runtime/WeakMapPrototype.cpp 2015-11-01 22:44:33 UTC (rev 191862)
+++ trunk/Source/_javascript_Core/runtime/WeakMapPrototype.cpp 2015-11-01 22:59:45 UTC (rev 191863)
@@ -50,8 +50,6 @@
JSC_NATIVE_FUNCTION(vm.propertyNames->get, protoFuncWeakMapGet, DontEnum, 1);
JSC_NATIVE_FUNCTION(vm.propertyNames->has, protoFuncWeakMapHas, DontEnum, 1);
JSC_NATIVE_FUNCTION(vm.propertyNames->set, protoFuncWeakMapSet, DontEnum, 2);
-
- putDirectWithoutTransition(vm, vm.propertyNames->toStringTagSymbol, jsString(&vm, "WeakMap"), DontEnum | ReadOnly);
}
static WeakMapData* getWeakMapData(CallFrame* callFrame, JSValue value)
Modified: trunk/Source/_javascript_Core/runtime/WeakSetPrototype.cpp (191862 => 191863)
--- trunk/Source/_javascript_Core/runtime/WeakSetPrototype.cpp 2015-11-01 22:44:33 UTC (rev 191862)
+++ trunk/Source/_javascript_Core/runtime/WeakSetPrototype.cpp 2015-11-01 22:59:45 UTC (rev 191863)
@@ -48,8 +48,6 @@
JSC_NATIVE_FUNCTION(vm.propertyNames->deleteKeyword, protoFuncWeakSetDelete, DontEnum, 1);
JSC_NATIVE_FUNCTION(vm.propertyNames->has, protoFuncWeakSetHas, DontEnum, 1);
JSC_NATIVE_FUNCTION(vm.propertyNames->add, protoFuncWeakSetAdd, DontEnum, 1);
-
- putDirectWithoutTransition(vm, vm.propertyNames->toStringTagSymbol, jsString(&vm, "WeakSet"), DontEnum | ReadOnly);
}
static WeakMapData* getWeakMapData(CallFrame* callFrame, JSValue value)
Modified: trunk/Source/_javascript_Core/tests/es6.yaml (191862 => 191863)
--- trunk/Source/_javascript_Core/tests/es6.yaml 2015-11-01 22:44:33 UTC (rev 191862)
+++ trunk/Source/_javascript_Core/tests/es6.yaml 2015-11-01 22:59:45 UTC (rev 191863)
@@ -1199,6 +1199,6 @@
- path: es6/well-known_symbols_Symbol.toPrimitive.js
cmd: runES6 :fail
- path: es6/well-known_symbols_Symbol.toStringTag.js
- cmd: runES6 :normal
+ cmd: runES6 :fail
- path: es6/well-known_symbols_Symbol.toStringTag_misc._built-ins.js
- cmd: runES6 :normal
+ cmd: runES6 :fail
Modified: trunk/Source/_javascript_Core/tests/modules/namespace.js (191862 => 191863)
--- trunk/Source/_javascript_Core/tests/modules/namespace.js 2015-11-01 22:44:33 UTC (rev 191862)
+++ trunk/Source/_javascript_Core/tests/modules/namespace.js 2015-11-01 22:59:45 UTC (rev 191863)
@@ -55,9 +55,8 @@
// These names should be shown in the code point order.
shouldBe(JSON.stringify(Object.getOwnPropertyNames(namespace)), `["Cappuccino","Cocoa","Matcha","Mocha","default"]`);
-shouldBe(Object.getOwnPropertySymbols(namespace).length, 2);
+shouldBe(Object.getOwnPropertySymbols(namespace).length, 1);
shouldBe(Object.getOwnPropertySymbols(namespace)[0], Symbol.iterator);
-shouldBe(Object.getOwnPropertySymbols(namespace)[1], Symbol.toStringTag);
shouldBe(typeof namespace[Symbol.iterator], 'function');
var array = Array.from(namespace);
Deleted: trunk/Source/_javascript_Core/tests/stress/symbol-tostringtag.js (191862 => 191863)
--- trunk/Source/_javascript_Core/tests/stress/symbol-tostringtag.js 2015-11-01 22:44:33 UTC (rev 191862)
+++ trunk/Source/_javascript_Core/tests/stress/symbol-tostringtag.js 2015-11-01 22:59:45 UTC (rev 191863)
@@ -1,48 +0,0 @@
-// This file tests the names of all the classes with builtin Symbol.toStringTags and Object.prototype.toString().
-
-foo = { };
-foo[Symbol.toStringTag] = "test the tag";
-
-if (foo != "[object test the tag]")
- throw "failed on custom toStringTag";
-
-function toStr(obj) {
- return Object.prototype.toString.call(obj);
-}
-
-function strName(str) { return "[object " + str + "]"; }
-
-if (toStr(Symbol()) !== strName("Symbol"))
- throw "failed on Symbol";
-
-if (toStr(Symbol.prototype) !== strName("Symbol"))
- throw "failed on Symbol.prototype";
-
-objects = ["JSON", "Math"];
-
-for (name of objects) {
- value = eval(name)
- if (toStr(value) !== strName(name))
- throw "failed on " + name;
-}
-
-iterators = ['Array', 'Map', 'Set', 'String'];
-
-for (name of iterators) {
- value = eval('new ' + name + '()[Symbol.iterator]()');
- if (toStr(value) !== strName(name + ' Iterator'))
- throw 'failed on Iterator of ' + name;
- if (toStr(Object.getPrototypeOf(value)) !== strName(name + ' Iterator'))
- throw 'failed on Iterator.prototype of ' + name;
-}
-
-classes = { "ArrayBuffer": 10, "DataView": new ArrayBuffer(10), "Promise": function() { return 1 }, "Set": undefined, "WeakMap": undefined, "WeakSet": undefined };
-
-for (name in classes) {
- value = eval(name);
- if (toStr(new value(classes[name])) !== strName(name))
- throw "failed on new object of " + name;
- if (toStr(value.prototype) !== strName(name))
- throw "failed on prototype of " + name;
-}
-