X-Git-Url: https://git.saurik.com/apple/javascriptcore.git/blobdiff_plain/14957cd040308e3eeec43d26bae5d76da13fcd85..1981f5dfe8d77d97469d20652f712a09400c48ed:/runtime/NativeErrorConstructor.cpp diff --git a/runtime/NativeErrorConstructor.cpp b/runtime/NativeErrorConstructor.cpp index 2a7a7f5..b6aff91 100644 --- a/runtime/NativeErrorConstructor.cpp +++ b/runtime/NativeErrorConstructor.cpp @@ -29,31 +29,24 @@ namespace JSC { ASSERT_CLASS_FITS_IN_CELL(NativeErrorConstructor); +ASSERT_HAS_TRIVIAL_DESTRUCTOR(NativeErrorConstructor); -const ClassInfo NativeErrorConstructor::s_info = { "Function", &InternalFunction::s_info, 0, 0 }; +const ClassInfo NativeErrorConstructor::s_info = { "Function", &InternalFunction::s_info, 0, 0, CREATE_METHOD_TABLE(NativeErrorConstructor) }; -NativeErrorConstructor::NativeErrorConstructor(ExecState* exec, JSGlobalObject* globalObject, Structure* structure, Structure* prototypeStructure, const UString& nameAndMessage) - : InternalFunction(&exec->globalData(), globalObject, structure, Identifier(exec, nameAndMessage)) +NativeErrorConstructor::NativeErrorConstructor(JSGlobalObject* globalObject, Structure* structure) + : InternalFunction(globalObject, structure) { - ASSERT(inherits(&s_info)); - - NativeErrorPrototype* prototype = new (exec) NativeErrorPrototype(exec, globalObject, prototypeStructure, nameAndMessage, this); - - putDirect(exec->globalData(), exec->propertyNames().length, jsNumber(1), DontDelete | ReadOnly | DontEnum); // ECMA 15.11.7.5 - putDirect(exec->globalData(), exec->propertyNames().prototype, prototype, DontDelete | ReadOnly | DontEnum); - m_errorStructure.set(exec->globalData(), this, ErrorInstance::createStructure(exec->globalData(), prototype)); - ASSERT(m_errorStructure); - ASSERT(m_errorStructure->typeInfo().type() == ObjectType); } -void NativeErrorConstructor::visitChildren(SlotVisitor& visitor) +void NativeErrorConstructor::visitChildren(JSCell* cell, SlotVisitor& visitor) { - ASSERT_GC_OBJECT_INHERITS(this, &s_info); + NativeErrorConstructor* thisObject = jsCast(cell); + ASSERT_GC_OBJECT_INHERITS(thisObject, &s_info); COMPILE_ASSERT(StructureFlags & OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag); - ASSERT(structure()->typeInfo().overridesVisitChildren()); - InternalFunction::visitChildren(visitor); - if (m_errorStructure) - visitor.append(&m_errorStructure); + ASSERT(thisObject->structure()->typeInfo().overridesVisitChildren()); + InternalFunction::visitChildren(thisObject, visitor); + if (thisObject->m_errorStructure) + visitor.append(&thisObject->m_errorStructure); } static EncodedJSValue JSC_HOST_CALL constructWithNativeErrorConstructor(ExecState* exec) @@ -64,7 +57,7 @@ static EncodedJSValue JSC_HOST_CALL constructWithNativeErrorConstructor(ExecStat return JSValue::encode(ErrorInstance::create(exec, errorStructure, message)); } -ConstructType NativeErrorConstructor::getConstructData(ConstructData& constructData) +ConstructType NativeErrorConstructor::getConstructData(JSCell*, ConstructData& constructData) { constructData.native.function = constructWithNativeErrorConstructor; return ConstructTypeHost; @@ -77,7 +70,7 @@ static EncodedJSValue JSC_HOST_CALL callNativeErrorConstructor(ExecState* exec) return JSValue::encode(ErrorInstance::create(exec, errorStructure, message)); } -CallType NativeErrorConstructor::getCallData(CallData& callData) +CallType NativeErrorConstructor::getCallData(JSCell*, CallData& callData) { callData.native.function = callNativeErrorConstructor; return CallTypeHost;