Skip to content
  • barraclough@apple.com's avatar
    https://bugs.webkit.org/show_bug.cgi?id=32184 · b749f0bb
    barraclough@apple.com authored
    Handle out-of-memory conditions with JSC Ropes with a JS exception, rather than crashing.
    Switch from using fastMalloc to tryFastMalloc, pass an ExecState to record the exception on.
    
    Reviewed by Oliver Hunt.
    
    JavaScriptCore: 
    
    * API/JSCallbackObjectFunctions.h:
    (JSC::::toString):
    * API/JSValueRef.cpp:
    (JSValueIsStrictEqual):
    * JavaScriptCore.exp:
    * bytecompiler/BytecodeGenerator.cpp:
    (JSC::BytecodeGenerator::emitEqualityOp):
    * debugger/DebuggerCallFrame.cpp:
    (JSC::DebuggerCallFrame::functionName):
    (JSC::DebuggerCallFrame::calculatedFunctionName):
    * interpreter/Interpreter.cpp:
    (JSC::Interpreter::callEval):
    (JSC::Interpreter::privateExecute):
    * jit/JITStubs.cpp:
    (JSC::DEFINE_STUB_FUNCTION):
    * profiler/ProfileGenerator.cpp:
    (JSC::ProfileGenerator::addParentForConsoleStart):
    * profiler/Profiler.cpp:
    (JSC::Profiler::willExecute):
    (JSC::Profiler::didExecute):
    (JSC::Profiler::createCallIdentifier):
    (JSC::createCallIdentifierFromFunctionImp):
    * profiler/Profiler.h:
    * runtime/ArrayPrototype.cpp:
    (JSC::arrayProtoFuncIndexOf):
    (JSC::arrayProtoFuncLastIndexOf):
    * runtime/DateConstructor.cpp:
    (JSC::constructDate):
    * runtime/FunctionPrototype.cpp:
    (JSC::functionProtoFuncToString):
    * runtime/InternalFunction.cpp:
    (JSC::InternalFunction::name):
    (JSC::InternalFunction::displayName):
    (JSC::InternalFunction::calculatedDisplayName):
    * runtime/InternalFunction.h:
    * runtime/JSCell.cpp:
    (JSC::JSCell::getString):
    * runtime/JSCell.h:
    (JSC::JSValue::getString):
    * runtime/JSONObject.cpp:
    (JSC::gap):
    (JSC::Stringifier::Stringifier):
    (JSC::Stringifier::appendStringifiedValue):
    * runtime/JSObject.cpp:
    (JSC::JSObject::putDirectFunction):
    (JSC::JSObject::putDirectFunctionWithoutTransition):
    (JSC::JSObject::defineOwnProperty):
    * runtime/JSObject.h:
    * runtime/JSPropertyNameIterator.cpp:
    (JSC::JSPropertyNameIterator::get):
    * runtime/JSString.cpp:
    (JSC::JSString::Rope::~Rope):
    (JSC::JSString::resolveRope):
    (JSC::JSString::getPrimitiveNumber):
    (JSC::JSString::toNumber):
    (JSC::JSString::toString):
    (JSC::JSString::toThisString):
    (JSC::JSString::getStringPropertyDescriptor):
    * runtime/JSString.h:
    (JSC::JSString::Rope::createOrNull):
    (JSC::JSString::Rope::operator new):
    (JSC::JSString::value):
    (JSC::JSString::tryGetValue):
    (JSC::JSString::getIndex):
    (JSC::JSString::getStringPropertySlot):
    (JSC::JSValue::toString):
    * runtime/JSValue.h:
    * runtime/NativeErrorConstructor.cpp:
    (JSC::NativeErrorConstructor::NativeErrorConstructor):
    * runtime/Operations.cpp:
    (JSC::JSValue::strictEqualSlowCase):
    * runtime/Operations.h:
    (JSC::JSValue::equalSlowCaseInline):
    (JSC::JSValue::strictEqualSlowCaseInline):
    (JSC::JSValue::strictEqual):
    (JSC::jsLess):
    (JSC::jsLessEq):
    (JSC::jsAdd):
    (JSC::concatenateStrings):
    * runtime/PropertyDescriptor.cpp:
    (JSC::PropertyDescriptor::equalTo):
    * runtime/PropertyDescriptor.h:
    * runtime/StringPrototype.cpp:
    (JSC::stringProtoFuncReplace):
    (JSC::stringProtoFuncToLowerCase):
    (JSC::stringProtoFuncToUpperCase):
    
    WebCore: 
    
    * bindings/ScriptControllerBase.cpp:
    (WebCore::ScriptController::executeIfJavaScriptURL):
    * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
    (WebCore::toHTMLCanvasStyle):
    (WebCore::JSCanvasRenderingContext2D::setFillColor):
    (WebCore::JSCanvasRenderingContext2D::setStrokeColor):
    (WebCore::JSCanvasRenderingContext2D::setShadow):
    * bindings/js/ScriptCallStack.cpp:
    (WebCore::ScriptCallStack::ScriptCallStack):
    (WebCore::ScriptCallStack::initialize):
    * bindings/js/ScriptValue.cpp:
    (WebCore::ScriptValue::getString):
    * bindings/js/ScriptValue.h:
    * bindings/js/SerializedScriptValue.cpp:
    (WebCore::SerializingTreeWalker::convertIfTerminal):
    * bindings/objc/WebScriptObject.mm:
    (+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):
    * page/Console.cpp:
    (WebCore::Console::addMessage):
    
    WebKit/mac: 
    
    * WebView/WebView.mm:
    (aeDescFromJSValue):
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51801 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    b749f0bb