X-Git-Url: https://git.saurik.com/apple/javascriptcore.git/blobdiff_plain/9dae56ea45a0f5f8136a5c93d6f3a7f99399ca73..14957cd040308e3eeec43d26bae5d76da13fcd85:/runtime/ErrorInstance.cpp?ds=inline diff --git a/runtime/ErrorInstance.cpp b/runtime/ErrorInstance.cpp index 2e2cdce..ed95ba4 100644 --- a/runtime/ErrorInstance.cpp +++ b/runtime/ErrorInstance.cpp @@ -23,11 +23,34 @@ namespace JSC { -const ClassInfo ErrorInstance::info = { "Error", 0, 0, 0 }; +const ClassInfo ErrorInstance::s_info = { "Error", &JSNonFinalObject::s_info, 0, 0 }; -ErrorInstance::ErrorInstance(PassRefPtr structure) - : JSObject(structure) +ErrorInstance::ErrorInstance(JSGlobalData* globalData, Structure* structure) + : JSNonFinalObject(*globalData, structure) + , m_appendSourceToMessage(false) { + ASSERT(inherits(&s_info)); + putDirect(*globalData, globalData->propertyNames->message, jsString(globalData, "")); +} + +ErrorInstance::ErrorInstance(JSGlobalData* globalData, Structure* structure, const UString& message) + : JSNonFinalObject(*globalData, structure) + , m_appendSourceToMessage(false) +{ + ASSERT(inherits(&s_info)); + putDirect(*globalData, globalData->propertyNames->message, jsString(globalData, message)); +} + +ErrorInstance* ErrorInstance::create(JSGlobalData* globalData, Structure* structure, const UString& message) +{ + return new (globalData) ErrorInstance(globalData, structure, message); +} + +ErrorInstance* ErrorInstance::create(ExecState* exec, Structure* structure, JSValue message) +{ + if (message.isUndefined()) + return new (exec) ErrorInstance(&exec->globalData(), structure); + return new (exec) ErrorInstance(&exec->globalData(), structure, message.toString(exec)); } } // namespace JSC