Diff
Modified: releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/BigIntObject.cpp (241719 => 241720)
--- releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/BigIntObject.cpp 2019-02-18 16:53:32 UTC (rev 241719)
+++ releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/BigIntObject.cpp 2019-02-18 17:14:55 UTC (rev 241720)
@@ -45,7 +45,7 @@
}
BigIntObject::BigIntObject(VM& vm, Structure* structure)
- : Base(vm, structure)
+ : JSWrapperObject(vm, structure)
{
}
Modified: releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/BooleanConstructor.cpp (241719 => 241720)
--- releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/BooleanConstructor.cpp 2019-02-18 16:53:32 UTC (rev 241719)
+++ releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/BooleanConstructor.cpp 2019-02-18 17:14:55 UTC (rev 241720)
@@ -57,7 +57,7 @@
void BooleanConstructor::finishCreation(VM& vm, BooleanPrototype* booleanPrototype)
{
- Base::finishCreation(vm, booleanPrototype->classInfo(vm)->className);
+ Base::finishCreation(vm, booleanPrototype->classInfo()->className);
putDirectWithoutTransition(vm, vm.propertyNames->prototype, booleanPrototype, PropertyAttribute::DontEnum | PropertyAttribute::DontDelete | PropertyAttribute::ReadOnly);
putDirectWithoutTransition(vm, vm.propertyNames->length, jsNumber(1), PropertyAttribute::ReadOnly | PropertyAttribute::DontEnum);
}
Modified: releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/BooleanObject.cpp (241719 => 241720)
--- releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/BooleanObject.cpp 2019-02-18 16:53:32 UTC (rev 241719)
+++ releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/BooleanObject.cpp 2019-02-18 17:14:55 UTC (rev 241720)
@@ -28,10 +28,10 @@
STATIC_ASSERT_IS_TRIVIALLY_DESTRUCTIBLE(BooleanObject);
-const ClassInfo BooleanObject::s_info = { "Boolean", &Base::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(BooleanObject) };
+const ClassInfo BooleanObject::s_info = { "Boolean", &JSWrapperObject::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(BooleanObject) };
BooleanObject::BooleanObject(VM& vm, Structure* structure)
- : Base(vm, structure)
+ : JSWrapperObject(vm, structure)
{
}
Modified: releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/BooleanObject.h (241719 => 241720)
--- releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/BooleanObject.h 2019-02-18 16:53:32 UTC (rev 241719)
+++ releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/BooleanObject.h 2019-02-18 17:14:55 UTC (rev 241720)
@@ -30,7 +30,7 @@
JS_EXPORT_PRIVATE void finishCreation(VM&);
public:
- using Base = JSWrapperObject;
+ typedef JSWrapperObject Base;
static BooleanObject* create(VM& vm, Structure* structure)
{
Modified: releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/DateInstance.cpp (241719 => 241720)
--- releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/DateInstance.cpp 2019-02-18 16:53:32 UTC (rev 241719)
+++ releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/DateInstance.cpp 2019-02-18 17:14:55 UTC (rev 241720)
@@ -32,10 +32,10 @@
using namespace WTF;
-const ClassInfo DateInstance::s_info = {"Date", &Base::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(DateInstance)};
+const ClassInfo DateInstance::s_info = {"Date", &JSWrapperObject::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(DateInstance)};
DateInstance::DateInstance(VM& vm, Structure* structure)
- : Base(vm, structure)
+ : JSWrapperObject(vm, structure)
{
}
@@ -43,6 +43,7 @@
{
Base::finishCreation(vm);
ASSERT(inherits(vm, info()));
+ setInternalValue(vm, jsNaN());
}
void DateInstance::finishCreation(VM& vm, double time)
@@ -49,7 +50,7 @@
{
Base::finishCreation(vm);
ASSERT(inherits(vm, info()));
- m_internalNumber = timeClip(time);
+ setInternalValue(vm, jsNumber(timeClip(time)));
}
void DateInstance::destroy(JSCell* cell)
Modified: releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/DateInstance.h (241719 => 241720)
--- releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/DateInstance.h 2019-02-18 16:53:32 UTC (rev 241719)
+++ releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/DateInstance.h 2019-02-18 17:14:55 UTC (rev 241720)
@@ -20,11 +20,12 @@
#pragma once
-#include "JSDestructibleObject.h"
+#include "JSCPoison.h"
+#include "JSWrapperObject.h"
namespace JSC {
-class DateInstance final : public JSDestructibleObject {
+class DateInstance final : public JSWrapperObject {
protected:
JS_EXPORT_PRIVATE DateInstance(VM&, Structure*);
void finishCreation(VM&);
@@ -33,7 +34,7 @@
JS_EXPORT_PRIVATE static void destroy(JSCell*);
public:
- using Base = JSDestructibleObject;
+ typedef JSWrapperObject Base;
static DateInstance* create(VM& vm, Structure* structure, double date)
{
@@ -49,8 +50,7 @@
return instance;
}
- double internalNumber() const { return m_internalNumber; }
- void setInternalNumber(double value) { m_internalNumber = value; }
+ double internalNumber() const { return internalValue().asNumber(); }
DECLARE_EXPORT_INFO;
@@ -77,8 +77,7 @@
JS_EXPORT_PRIVATE const GregorianDateTime* calculateGregorianDateTime(ExecState*) const;
JS_EXPORT_PRIVATE const GregorianDateTime* calculateGregorianDateTimeUTC(ExecState*) const;
- double m_internalNumber { PNaN };
- mutable RefPtr<DateInstanceData> m_data;
+ mutable PoisonedRefPtr<DateInstancePoison, DateInstanceData> m_data;
};
} // namespace JSC
Modified: releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/DatePrototype.cpp (241719 => 241720)
--- releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/DatePrototype.cpp 2019-02-18 16:53:32 UTC (rev 241719)
+++ releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/DatePrototype.cpp 2019-02-18 17:14:55 UTC (rev 241720)
@@ -648,7 +648,7 @@
if (UNLIKELY(!thisDateObj))
return throwVMTypeError(exec, scope);
- return JSValue::encode(jsNumber(thisDateObj->internalNumber()));
+ return JSValue::encode(thisDateObj->internalValue());
}
EncodedJSValue JSC_HOST_CALL dateProtoFuncGetFullYear(ExecState* exec)
@@ -923,8 +923,9 @@
double milli = timeClip(exec->argument(0).toNumber(exec));
RETURN_IF_EXCEPTION(scope, encodedJSValue());
- thisDateObj->setInternalNumber(milli);
- return JSValue::encode(jsNumber(milli));
+ JSValue result = jsNumber(milli);
+ thisDateObj->setInternalValue(vm, result);
+ return JSValue::encode(result);
}
static EncodedJSValue setNewValueFromTimeArgs(ExecState* exec, int numArgsToUse, WTF::TimeType inputTimeType)
@@ -939,8 +940,9 @@
double milli = thisDateObj->internalNumber();
if (!exec->argumentCount() || std::isnan(milli)) {
- thisDateObj->setInternalNumber(PNaN);
- return JSValue::encode(jsNaN());
+ JSValue result = jsNaN();
+ thisDateObj->setInternalValue(vm, result);
+ return JSValue::encode(result);
}
double secs = floor(milli / msPerSecond);
@@ -957,14 +959,15 @@
bool success = fillStructuresUsingTimeArgs(exec, numArgsToUse, &ms, &gregorianDateTime);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
if (!success) {
- thisDateObj->setInternalNumber(PNaN);
- return JSValue::encode(jsNaN());
+ JSValue result = jsNaN();
+ thisDateObj->setInternalValue(vm, result);
+ return JSValue::encode(result);
}
double newUTCDate = gregorianDateTimeToMS(vm, gregorianDateTime, ms, inputTimeType);
- double result = timeClip(newUTCDate);
- thisDateObj->setInternalNumber(result);
- return JSValue::encode(jsNumber(result));
+ JSValue result = jsNumber(timeClip(newUTCDate));
+ thisDateObj->setInternalValue(vm, result);
+ return JSValue::encode(result);
}
static EncodedJSValue setNewValueFromDateArgs(ExecState* exec, int numArgsToUse, WTF::TimeType inputTimeType)
@@ -977,8 +980,9 @@
return throwVMTypeError(exec, scope);
if (!exec->argumentCount()) {
- thisDateObj->setInternalNumber(PNaN);
- return JSValue::encode(jsNaN());
+ JSValue result = jsNaN();
+ thisDateObj->setInternalValue(vm, result);
+ return JSValue::encode(result);
}
double milli = thisDateObj->internalNumber();
@@ -1000,14 +1004,15 @@
bool success = fillStructuresUsingDateArgs(exec, numArgsToUse, &ms, &gregorianDateTime);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
if (!success) {
- thisDateObj->setInternalNumber(PNaN);
- return JSValue::encode(jsNaN());
+ JSValue result = jsNaN();
+ thisDateObj->setInternalValue(vm, result);
+ return JSValue::encode(result);
}
double newUTCDate = gregorianDateTimeToMS(vm, gregorianDateTime, ms, inputTimeType);
- double result = timeClip(newUTCDate);
- thisDateObj->setInternalNumber(result);
- return JSValue::encode(jsNumber(result));
+ JSValue result = jsNumber(timeClip(newUTCDate));
+ thisDateObj->setInternalValue(vm, result);
+ return JSValue::encode(result);
}
EncodedJSValue JSC_HOST_CALL dateProtoFuncSetMilliSeconds(ExecState* exec)
@@ -1090,8 +1095,9 @@
return throwVMTypeError(exec, scope);
if (!exec->argumentCount()) {
- thisDateObj->setInternalNumber(PNaN);
- return JSValue::encode(jsNaN());
+ JSValue result = jsNaN();
+ thisDateObj->setInternalValue(vm, result);
+ return JSValue::encode(result);
}
double milli = thisDateObj->internalNumber();
@@ -1112,15 +1118,16 @@
double year = exec->argument(0).toIntegerPreserveNaN(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
if (!std::isfinite(year)) {
- thisDateObj->setInternalNumber(PNaN);
- return JSValue::encode(jsNaN());
+ JSValue result = jsNaN();
+ thisDateObj->setInternalValue(vm, result);
+ return JSValue::encode(result);
}
gregorianDateTime.setYear(toInt32((year >= 0 && year <= 99) ? (year + 1900) : year));
double timeInMilliseconds = gregorianDateTimeToMS(vm, gregorianDateTime, ms, WTF::LocalTime);
- double result = timeClip(timeInMilliseconds);
- thisDateObj->setInternalNumber(result);
- return JSValue::encode(jsNumber(result));
+ JSValue result = jsNumber(timeClip(timeInMilliseconds));
+ thisDateObj->setInternalValue(vm, result);
+ return JSValue::encode(result);
}
EncodedJSValue JSC_HOST_CALL dateProtoFuncGetYear(ExecState* exec)
Modified: releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/JSCPoison.h (241719 => 241720)
--- releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/JSCPoison.h 2019-02-18 16:53:32 UTC (rev 241719)
+++ releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/JSCPoison.h 2019-02-18 17:14:55 UTC (rev 241720)
@@ -33,6 +33,7 @@
#define FOR_EACH_JSC_POISON(v) \
v(ArrayPrototype) \
v(CodeBlock) \
+ v(DateInstance) \
v(GlobalData) \
v(JITCode) \
v(JSAPIWrapperObject) \
Modified: releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/JSWrapperObject.h (241719 => 241720)
--- releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/JSWrapperObject.h 2019-02-18 16:53:32 UTC (rev 241719)
+++ releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/JSWrapperObject.h 2019-02-18 17:14:55 UTC (rev 241720)
@@ -21,15 +21,15 @@
#pragma once
-#include "JSObject.h"
+#include "JSDestructibleObject.h"
namespace JSC {
// This class is used as a base for classes such as String,
-// Number, Boolean and Symbol which are wrappers for primitive types.
-class JSWrapperObject : public JSNonFinalObject {
+// Number, Boolean and Date which are wrappers for primitive types.
+class JSWrapperObject : public JSDestructibleObject {
public:
- using Base = JSNonFinalObject;
+ typedef JSDestructibleObject Base;
static size_t allocationSize(Checked<size_t> inlineCapacity)
{
@@ -65,7 +65,7 @@
};
inline JSWrapperObject::JSWrapperObject(VM& vm, Structure* structure)
- : Base(vm, structure)
+ : JSDestructibleObject(vm, structure)
{
}
Modified: releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/NumberObject.cpp (241719 => 241720)
--- releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/NumberObject.cpp 2019-02-18 16:53:32 UTC (rev 241719)
+++ releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/NumberObject.cpp 2019-02-18 17:14:55 UTC (rev 241720)
@@ -30,10 +30,10 @@
STATIC_ASSERT_IS_TRIVIALLY_DESTRUCTIBLE(NumberObject);
-const ClassInfo NumberObject::s_info = { "Number", &Base::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(NumberObject) };
+const ClassInfo NumberObject::s_info = { "Number", &JSWrapperObject::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(NumberObject) };
NumberObject::NumberObject(VM& vm, Structure* structure)
- : Base(vm, structure)
+ : JSWrapperObject(vm, structure)
{
}
Modified: releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/NumberObject.h (241719 => 241720)
--- releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/NumberObject.h 2019-02-18 16:53:32 UTC (rev 241719)
+++ releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/NumberObject.h 2019-02-18 17:14:55 UTC (rev 241720)
@@ -30,7 +30,7 @@
void finishCreation(VM&);
public:
- using Base = JSWrapperObject;
+ typedef JSWrapperObject Base;
static NumberObject* create(VM& vm, Structure* structure)
{
Modified: releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/StringConstructor.cpp (241719 => 241720)
--- releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/StringConstructor.cpp 2019-02-18 16:53:32 UTC (rev 241719)
+++ releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/StringConstructor.cpp 2019-02-18 17:14:55 UTC (rev 241720)
@@ -63,7 +63,7 @@
void StringConstructor::finishCreation(VM& vm, StringPrototype* stringPrototype)
{
- Base::finishCreation(vm, stringPrototype->classInfo(vm)->className);
+ Base::finishCreation(vm, stringPrototype->classInfo()->className);
putDirectWithoutTransition(vm, vm.propertyNames->prototype, stringPrototype, PropertyAttribute::ReadOnly | PropertyAttribute::DontEnum | PropertyAttribute::DontDelete);
putDirectWithoutTransition(vm, vm.propertyNames->length, jsNumber(1), PropertyAttribute::ReadOnly | PropertyAttribute::DontEnum);
}
Modified: releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/StringObject.cpp (241719 => 241720)
--- releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/StringObject.cpp 2019-02-18 16:53:32 UTC (rev 241719)
+++ releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/StringObject.cpp 2019-02-18 17:14:55 UTC (rev 241720)
@@ -30,10 +30,10 @@
STATIC_ASSERT_IS_TRIVIALLY_DESTRUCTIBLE(StringObject);
-const ClassInfo StringObject::s_info = { "String", &Base::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(StringObject) };
+const ClassInfo StringObject::s_info = { "String", &JSWrapperObject::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(StringObject) };
StringObject::StringObject(VM& vm, Structure* structure)
- : Base(vm, structure)
+ : JSWrapperObject(vm, structure)
{
}
Modified: releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/StringObject.h (241719 => 241720)
--- releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/StringObject.h 2019-02-18 16:53:32 UTC (rev 241719)
+++ releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/StringObject.h 2019-02-18 17:14:55 UTC (rev 241720)
@@ -27,7 +27,7 @@
class StringObject : public JSWrapperObject {
public:
- using Base = JSWrapperObject;
+ typedef JSWrapperObject Base;
static const unsigned StructureFlags = Base::StructureFlags | OverridesGetOwnPropertySlot | InterceptsGetOwnPropertySlotByIndexEvenWhenLengthIsNotZero | OverridesGetPropertyNames;
static StringObject* create(VM& vm, Structure* structure)
@@ -59,7 +59,7 @@
DECLARE_EXPORT_INFO;
- JSString* internalValue() const { return asString(JSWrapperObject::internalValue()); }
+ JSString* internalValue() const { return asString(JSWrapperObject::internalValue());}
static Structure* createStructure(VM& vm, JSGlobalObject* globalObject, JSValue prototype)
{
Modified: releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/SymbolObject.cpp (241719 => 241720)
--- releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/SymbolObject.cpp 2019-02-18 16:53:32 UTC (rev 241719)
+++ releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/SymbolObject.cpp 2019-02-18 17:14:55 UTC (rev 241720)
@@ -33,10 +33,10 @@
STATIC_ASSERT_IS_TRIVIALLY_DESTRUCTIBLE(SymbolObject);
-const ClassInfo SymbolObject::s_info = { "Symbol", &Base::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(SymbolObject) };
+const ClassInfo SymbolObject::s_info = { "Symbol", &JSWrapperObject::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(SymbolObject) };
SymbolObject::SymbolObject(VM& vm, Structure* structure)
- : Base(vm, structure)
+ : JSWrapperObject(vm, structure)
{
}
Modified: releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/SymbolObject.h (241719 => 241720)
--- releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/SymbolObject.h 2019-02-18 16:53:32 UTC (rev 241719)
+++ releases/WebKitGTK/webkit-2.24/Source/_javascript_Core/runtime/SymbolObject.h 2019-02-18 17:14:55 UTC (rev 241720)
@@ -28,7 +28,7 @@
class SymbolObject final : public JSWrapperObject {
public:
- using Base = JSWrapperObject;
+ typedef JSWrapperObject Base;
static SymbolObject* create(VM& vm, Structure* structure)
{