Changeset 37845 in webkit for trunk/JavaScriptCore/VM


Ignore:
Timestamp:
Oct 24, 2008, 9:22:51 AM (17 years ago)
Author:
Darin Adler
Message:

JavaScriptCore:

2008-10-24 Darin Adler <Darin Adler>

  • API/APICast.h:
  • API/JSCallbackConstructor.h:
  • API/JSCallbackFunction.cpp:
  • API/JSCallbackFunction.h:
  • API/JSCallbackObject.h:
  • API/JSCallbackObjectFunctions.h:
  • API/JSContextRef.cpp:
  • API/JSObjectRef.cpp:
  • API/JSValueRef.cpp:
  • VM/CTI.cpp:
  • VM/CTI.h:
  • VM/CodeBlock.cpp:
  • VM/CodeBlock.h:
  • VM/CodeGenerator.cpp:
  • VM/CodeGenerator.h:
  • VM/ExceptionHelpers.cpp:
  • VM/ExceptionHelpers.h:
  • VM/JSPropertyNameIterator.cpp:
  • VM/JSPropertyNameIterator.h:
  • VM/Machine.cpp:
  • VM/Machine.h:
  • VM/Register.h:
  • kjs/ArgList.cpp:
  • kjs/ArgList.h:
  • kjs/Arguments.cpp:
  • kjs/Arguments.h:
  • kjs/ArrayConstructor.cpp:
  • kjs/ArrayPrototype.cpp:
  • kjs/BooleanConstructor.cpp:
  • kjs/BooleanConstructor.h:
  • kjs/BooleanObject.h:
  • kjs/BooleanPrototype.cpp:
  • kjs/CallData.cpp:
  • kjs/CallData.h:
  • kjs/ConstructData.cpp:
  • kjs/ConstructData.h:
  • kjs/DateConstructor.cpp:
  • kjs/DateInstance.h:
  • kjs/DatePrototype.cpp:
  • kjs/DatePrototype.h:
  • kjs/DebuggerCallFrame.cpp:
  • kjs/DebuggerCallFrame.h:
  • kjs/ErrorConstructor.cpp:
  • kjs/ErrorPrototype.cpp:
  • kjs/ExecState.cpp:
  • kjs/ExecState.h:
  • kjs/FunctionConstructor.cpp:
  • kjs/FunctionPrototype.cpp:
  • kjs/FunctionPrototype.h:
  • kjs/GetterSetter.cpp:
  • kjs/GetterSetter.h:
  • kjs/InternalFunction.h:
  • kjs/JSActivation.cpp:
  • kjs/JSActivation.h:
  • kjs/JSArray.cpp:
  • kjs/JSArray.h:
  • kjs/JSCell.cpp:
  • kjs/JSCell.h:
  • kjs/JSFunction.cpp:
  • kjs/JSFunction.h:
  • kjs/JSGlobalData.h:
  • kjs/JSGlobalObject.cpp:
  • kjs/JSGlobalObject.h:
  • kjs/JSGlobalObjectFunctions.cpp:
  • kjs/JSGlobalObjectFunctions.h:
  • kjs/JSImmediate.cpp:
  • kjs/JSImmediate.h:
  • kjs/JSNotAnObject.cpp:
  • kjs/JSNotAnObject.h:
  • kjs/JSNumberCell.cpp:
  • kjs/JSNumberCell.h:
  • kjs/JSObject.cpp:
  • kjs/JSObject.h:
  • kjs/JSStaticScopeObject.cpp:
  • kjs/JSStaticScopeObject.h:
  • kjs/JSString.cpp:
  • kjs/JSString.h:
  • kjs/JSValue.h:
  • kjs/JSVariableObject.h:
  • kjs/JSWrapperObject.h:
  • kjs/MathObject.cpp:
  • kjs/MathObject.h:
  • kjs/NativeErrorConstructor.cpp:
  • kjs/NumberConstructor.cpp:
  • kjs/NumberConstructor.h:
  • kjs/NumberObject.cpp:
  • kjs/NumberObject.h:
  • kjs/NumberPrototype.cpp:
  • kjs/ObjectConstructor.cpp:
  • kjs/ObjectPrototype.cpp:
  • kjs/ObjectPrototype.h:
  • kjs/PropertyMap.h:
  • kjs/PropertySlot.cpp:
  • kjs/PropertySlot.h:
  • kjs/RegExpConstructor.cpp:
  • kjs/RegExpConstructor.h:
  • kjs/RegExpMatchesArray.h:
  • kjs/RegExpObject.cpp:
  • kjs/RegExpObject.h:
  • kjs/RegExpPrototype.cpp:
  • kjs/Shell.cpp:
  • kjs/StringConstructor.cpp:
  • kjs/StringObject.cpp:
  • kjs/StringObject.h:
  • kjs/StringObjectThatMasqueradesAsUndefined.h:
  • kjs/StringPrototype.cpp:
  • kjs/StructureID.cpp:
  • kjs/StructureID.h:
  • kjs/collector.cpp:
  • kjs/collector.h:
  • kjs/completion.h:
  • kjs/grammar.y:
  • kjs/interpreter.cpp:
  • kjs/interpreter.h:
  • kjs/lookup.cpp:
  • kjs/lookup.h:
  • kjs/nodes.h:
  • kjs/operations.cpp:
  • kjs/operations.h:
  • kjs/protect.h:
  • profiler/ProfileGenerator.cpp:
  • profiler/Profiler.cpp:
  • profiler/Profiler.h: Use JSValue* instead of JSValuePtr.

JavaScriptGlue:

2008-10-24 Darin Adler <Darin Adler>

  • JSObject.cpp: (nativeCallFunction):
  • JSUtils.cpp: (KJSValueToJSObject): (JSObjectKJSValue): (KJSValueToCFTypeInternal): (KJSValueToCFType):
  • JSUtils.h:
  • JSValueWrapper.cpp: (JSValueWrapper::JSValueWrapper): (JSValueWrapper::GetValue): (JSValueWrapper::JSObjectCopyProperty): (JSValueWrapper::JSObjectSetProperty): (JSValueWrapper::JSObjectCallFunction):
  • JSValueWrapper.h:
  • UserObjectImp.cpp: (UserObjectImp::callAsFunction): (UserObjectImp::userObjectGetter): (UserObjectImp::getOwnPropertySlot): (UserObjectImp::put): (UserObjectImp::toPrimitive):
  • UserObjectImp.h: (UserObjectImp::createStructureID): Use JSValue* instead of JSValuePtr.

WebCore:

2008-10-24 Darin Adler <Darin Adler>

  • bindings/js/JSAttrCustom.cpp:
  • bindings/js/JSCSSRuleCustom.cpp:
  • bindings/js/JSCSSStyleDeclarationCustom.cpp:
  • bindings/js/JSCSSValueCustom.cpp:
  • bindings/js/JSCanvasPixelArrayCustom.h:
  • bindings/js/JSCanvasRenderingContext2DCustom.cpp:
  • bindings/js/JSClipboardCustom.cpp:
  • bindings/js/JSConsoleCustom.cpp:
  • bindings/js/JSCustomSQLStatementCallback.cpp:
  • bindings/js/JSCustomSQLStatementErrorCallback.cpp:
  • bindings/js/JSCustomSQLTransactionCallback.cpp:
  • bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
  • bindings/js/JSCustomVoidCallback.cpp:
  • bindings/js/JSCustomVoidCallback.h:
  • bindings/js/JSCustomXPathNSResolver.cpp:
  • bindings/js/JSCustomXPathNSResolver.h:
  • bindings/js/JSDOMApplicationCacheCustom.cpp:
  • bindings/js/JSDOMBinding.cpp:
  • bindings/js/JSDOMBinding.h:
  • bindings/js/JSDOMWindowBase.cpp:
  • bindings/js/JSDOMWindowBase.h:
  • bindings/js/JSDOMWindowCustom.cpp:
  • bindings/js/JSDOMWindowCustom.h:
  • bindings/js/JSDOMWindowShell.cpp:
  • bindings/js/JSDOMWindowShell.h:
  • bindings/js/JSDatabaseCustom.cpp:
  • bindings/js/JSDedicatedWorkerCustom.cpp:
  • bindings/js/JSDocumentCustom.cpp:
  • bindings/js/JSElementCustom.cpp:
  • bindings/js/JSEventCustom.cpp:
  • bindings/js/JSEventListener.cpp:
  • bindings/js/JSEventTarget.cpp:
  • bindings/js/JSEventTarget.h:
  • bindings/js/JSEventTargetBase.h:
  • bindings/js/JSEventTargetNodeCustom.cpp:
  • bindings/js/JSHTMLAllCollection.h:
  • bindings/js/JSHTMLAppletElementCustom.cpp:
  • bindings/js/JSHTMLCollectionCustom.cpp:
  • bindings/js/JSHTMLDocumentCustom.cpp:
  • bindings/js/JSHTMLEmbedElementCustom.cpp:
  • bindings/js/JSHTMLFormElementCustom.cpp:
  • bindings/js/JSHTMLFrameElementCustom.cpp:
  • bindings/js/JSHTMLFrameSetElementCustom.cpp:
  • bindings/js/JSHTMLIFrameElementCustom.cpp:
  • bindings/js/JSHTMLInputElementCustom.cpp:
  • bindings/js/JSHTMLObjectElementCustom.cpp:
  • bindings/js/JSHTMLOptionsCollectionCustom.cpp:
  • bindings/js/JSHTMLSelectElementCustom.cpp:
  • bindings/js/JSHTMLSelectElementCustom.h:
  • bindings/js/JSHistoryCustom.cpp:
  • bindings/js/JSImageDataCustom.cpp:
  • bindings/js/JSInspectedObjectWrapper.cpp:
  • bindings/js/JSInspectedObjectWrapper.h:
  • bindings/js/JSInspectorCallbackWrapper.cpp:
  • bindings/js/JSInspectorCallbackWrapper.h:
  • bindings/js/JSJavaScriptCallFrameCustom.cpp:
  • bindings/js/JSLocationCustom.cpp:
  • bindings/js/JSMessagePortCustom.cpp:
  • bindings/js/JSMimeTypeArrayCustom.cpp:
  • bindings/js/JSNamedNodeMapCustom.cpp:
  • bindings/js/JSNamedNodesCollection.cpp:
  • bindings/js/JSNamedNodesCollection.h:
  • bindings/js/JSNavigatorCustom.cpp:
  • bindings/js/JSNodeCustom.cpp:
  • bindings/js/JSNodeFilterCondition.cpp:
  • bindings/js/JSNodeFilterCondition.h:
  • bindings/js/JSNodeFilterCustom.cpp:
  • bindings/js/JSNodeIteratorCustom.cpp:
  • bindings/js/JSNodeListCustom.cpp:
  • bindings/js/JSPluginArrayCustom.cpp:
  • bindings/js/JSPluginCustom.cpp:
  • bindings/js/JSPluginElementFunctions.cpp:
  • bindings/js/JSPluginElementFunctions.h:
  • bindings/js/JSQuarantinedObjectWrapper.cpp:
  • bindings/js/JSQuarantinedObjectWrapper.h:
  • bindings/js/JSRGBColor.cpp:
  • bindings/js/JSRGBColor.h:
  • bindings/js/JSSQLResultSetRowListCustom.cpp:
  • bindings/js/JSSQLTransactionCustom.cpp:
  • bindings/js/JSSVGElementInstanceCustom.cpp:
  • bindings/js/JSSVGLengthCustom.cpp:
  • bindings/js/JSSVGMatrixCustom.cpp:
  • bindings/js/JSSVGPathSegCustom.cpp:
  • bindings/js/JSSVGPathSegListCustom.cpp:
  • bindings/js/JSSVGPointListCustom.cpp:
  • bindings/js/JSSVGTransformListCustom.cpp:
  • bindings/js/JSStorageCustom.cpp:
  • bindings/js/JSStyleSheetCustom.cpp:
  • bindings/js/JSStyleSheetListCustom.cpp:
  • bindings/js/JSTextCustom.cpp:
  • bindings/js/JSTreeWalkerCustom.cpp:
  • bindings/js/JSXMLHttpRequestCustom.cpp:
  • bindings/js/JSXMLHttpRequestUploadCustom.cpp:
  • bindings/js/JSXSLTProcessorCustom.cpp:
  • bindings/js/ScheduledAction.cpp:
  • bindings/js/ScheduledAction.h:
  • bindings/js/ScriptController.cpp:
  • bindings/js/ScriptController.h:
  • bindings/objc/WebScriptObject.mm:
  • bindings/objc/WebScriptObjectPrivate.h:
  • bindings/scripts/CodeGeneratorJS.pm:
  • bridge/NP_jsobject.cpp:
  • bridge/c/c_instance.cpp:
  • bridge/c/c_instance.h:
  • bridge/c/c_runtime.cpp:
  • bridge/c/c_runtime.h:
  • bridge/c/c_utility.cpp:
  • bridge/c/c_utility.h:
  • bridge/jni/jni_instance.cpp:
  • bridge/jni/jni_instance.h:
  • bridge/jni/jni_jsobject.h:
  • bridge/jni/jni_jsobject.mm:
  • bridge/jni/jni_objc.mm:
  • bridge/jni/jni_runtime.cpp:
  • bridge/jni/jni_runtime.h:
  • bridge/jni/jni_utility.cpp:
  • bridge/jni/jni_utility.h:
  • bridge/objc/WebScriptObject.h:
  • bridge/objc/objc_class.h:
  • bridge/objc/objc_class.mm:
  • bridge/objc/objc_instance.h:
  • bridge/objc/objc_instance.mm:
  • bridge/objc/objc_runtime.h:
  • bridge/objc/objc_runtime.mm:
  • bridge/objc/objc_utility.h:
  • bridge/objc/objc_utility.mm:
  • bridge/qt/qt_class.cpp:
  • bridge/qt/qt_class.h:
  • bridge/qt/qt_instance.cpp:
  • bridge/qt/qt_instance.h:
  • bridge/qt/qt_runtime.cpp:
  • bridge/qt/qt_runtime.h:
  • bridge/runtime.cpp:
  • bridge/runtime.h:
  • bridge/runtime_array.cpp:
  • bridge/runtime_array.h:
  • bridge/runtime_method.cpp:
  • bridge/runtime_method.h:
  • bridge/runtime_object.cpp:
  • bridge/runtime_object.h:
  • bridge/testqtbindings.cpp:
  • inspector/JavaScriptCallFrame.cpp:
  • inspector/JavaScriptCallFrame.h:
  • inspector/JavaScriptProfile.cpp:
  • inspector/JavaScriptProfile.h:
  • inspector/JavaScriptProfileNode.cpp:
  • inspector/JavaScriptProfileNode.h:
  • loader/FrameLoader.cpp:
  • loader/FrameLoader.h:
  • page/Console.cpp:
  • page/Console.h:
  • plugins/MimeTypeArray.h:
  • plugins/Plugin.h:
  • plugins/PluginArray.h:
  • plugins/PluginView.cpp:
  • xml/XMLHttpRequest.cpp: Use JSValue* instead of JSValuePtr.

WebKit/mac:

2008-10-24 Darin Adler <Darin Adler>

  • WebView/WebFrame.mm: (-[WebFrame _stringByEvaluatingJavaScriptFromString:forceUserGesture:]):
  • WebView/WebScriptDebugDelegate.mm: (-[WebScriptCallFrame _convertValueToObjcValue:]): (-[WebScriptCallFrame exception]): (-[WebScriptCallFrame evaluateWebScript:]):
  • WebView/WebView.mm: (aeDescFromJSValue): (-[WebView aeDescByEvaluatingJavaScriptFromString:]): Use JSValue* instead of JSValuePtr.

WebKit/qt:

2008-10-24 Darin Adler <Darin Adler>

  • Api/qwebframe.cpp: (QWebFrame::evaluateJavaScript): Use JSValue* instead of JSValuePtr.

WebKit/win:

2008-10-24 Darin Adler <Darin Adler>

  • WebScriptCallFrame.cpp: (WebScriptCallFrame::jsValueToString): (WebScriptCallFrame::stringByEvaluatingJavaScriptFromString): (WebScriptCallFrame::valueForVariable): (WebScriptCallFrame::valueByEvaluatingJavaScriptFromString):
  • WebScriptCallFrame.h:
  • WebView.cpp: (WebView::stringByEvaluatingJavaScriptFromString): Use JSValue* instead of JSValuePtr.

WebKit/wx:

2008-10-24 Darin Adler <Darin Adler>

  • WebFrame.cpp: (wxWebFrame::RunScript): Use JSValue* instead of JSValuePtr.
Location:
trunk/JavaScriptCore/VM
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/VM/CTI.cpp

    r37831 r37845  
    128128extern "C" {
    129129   
    130     __declspec(naked) JSValue* ctiTrampoline(void* code, RegisterFile*, CallFrame*, JSValuePtr* exception, Profiler**, JSGlobalData*)
     130    __declspec(naked) JSValue* ctiTrampoline(void* code, RegisterFile*, CallFrame*, JSValue** exception, Profiler**, JSGlobalData*)
    131131    {
    132132        __asm {
     
    169169}
    170170
    171 ALWAYS_INLINE JSValuePtr CTI::getConstant(CallFrame* callFrame, int src)
     171ALWAYS_INLINE JSValue* CTI::getConstant(CallFrame* callFrame, int src)
    172172{
    173173    return m_codeBlock->constantRegisters[src - m_codeBlock->numVars].jsValue(callFrame);
    174174}
    175175
    176 inline uintptr_t CTI::asInteger(JSValuePtr value)
     176inline uintptr_t CTI::asInteger(JSValue* value)
    177177{
    178178    return reinterpret_cast<uintptr_t>(value);
     
    184184    // TODO: we want to reuse values that are already in registers if we can - add a register allocator!
    185185    if (isConstant(src)) {
    186         JSValuePtr js = getConstant(m_callFrame, src);
     186        JSValue* js = getConstant(m_callFrame, src);
    187187        m_jit.movl_i32r(asInteger(js), dst);
    188188    } else
     
    194194{
    195195    if (isConstant(src)) {
    196         JSValuePtr js = getConstant(m_callFrame, src);
     196        JSValue* js = getConstant(m_callFrame, src);
    197197        m_jit.movl_i32m(asInteger(js), offset + sizeof(void*), X86::esp);
    198198    } else {
     
    213213}
    214214
    215 ALWAYS_INLINE JSValuePtr CTI::getConstantImmediateNumericArg(unsigned src)
     215ALWAYS_INLINE JSValue* CTI::getConstantImmediateNumericArg(unsigned src)
    216216{
    217217    if (isConstant(src)) {
    218         JSValuePtr js = getConstant(m_callFrame, src);
     218        JSValue* js = getConstant(m_callFrame, src);
    219219        return JSImmediate::isNumber(js) ? js : noValue();
    220220    }
     
    279279    char which1 = '*';
    280280    if (isConstant(src1)) {
    281         JSValuePtr js = getConstant(m_callFrame, src1);
     281        JSValue* js = getConstant(m_callFrame, src1);
    282282        which1 =
    283283            JSImmediate::isImmediate(js) ?
     
    293293    char which2 = '*';
    294294    if (isConstant(src2)) {
    295         JSValuePtr js = getConstant(m_callFrame, src2);
     295        JSValue* js = getConstant(m_callFrame, src2);
    296296        which2 =
    297297            JSImmediate::isImmediate(js) ?
     
    457457}
    458458
    459 ALWAYS_INLINE unsigned CTI::getDeTaggedConstantImmediate(JSValuePtr imm)
     459ALWAYS_INLINE unsigned CTI::getDeTaggedConstantImmediate(JSValue* imm)
    460460{
    461461    ASSERT(JSImmediate::isNumber(imm));
     
    978978            unsigned src2 = instruction[i + 3].u.operand;
    979979
    980             if (JSValuePtr value = getConstantImmediateNumericArg(src1)) {
     980            if (JSValue* value = getConstantImmediateNumericArg(src1)) {
    981981                emitGetArg(src2, X86::edx);
    982982                emitJumpSlowCaseIfNotImmNum(X86::edx, i);
     
    984984                m_slowCases.append(SlowCaseEntry(m_jit.emitUnlinkedJo(), i));
    985985                emitPutResult(dst, X86::edx);
    986             } else if (JSValuePtr value = getConstantImmediateNumericArg(src2)) {
     986            } else if (JSValue* value = getConstantImmediateNumericArg(src2)) {
    987987                emitGetArg(src1, X86::eax);
    988988                emitJumpSlowCaseIfNotImmNum(X86::eax, i);
     
    10451045
    10461046            unsigned target = instruction[i + 3].u.operand;
    1047             JSValuePtr src2imm = getConstantImmediateNumericArg(instruction[i + 2].u.operand);
     1047            JSValue* src2imm = getConstantImmediateNumericArg(instruction[i + 2].u.operand);
    10481048            if (src2imm) {
    10491049                emitGetArg(instruction[i + 1].u.operand, X86::edx);
     
    10661066
    10671067            unsigned target = instruction[i + 3].u.operand;
    1068             JSValuePtr src2imm = getConstantImmediateNumericArg(instruction[i + 2].u.operand);
     1068            JSValue* src2imm = getConstantImmediateNumericArg(instruction[i + 2].u.operand);
    10691069            if (src2imm) {
    10701070                emitGetArg(instruction[i + 1].u.operand, X86::edx);
     
    12211221
    12221222            // For now, only plant a fast int case if the constant operand is greater than zero.
    1223             JSValuePtr src1Value = getConstantImmediateNumericArg(src1);
    1224             JSValuePtr src2Value = getConstantImmediateNumericArg(src2);
     1223            JSValue* src1Value = getConstantImmediateNumericArg(src1);
     1224            JSValue* src2Value = getConstantImmediateNumericArg(src2);
    12251225            int32_t value;
    12261226            if (src1Value && ((value = JSImmediate::intValue(src1Value)) > 0)) {
     
    13881388
    13891389            // Get the value from the vector
    1390             m_jit.movl_mr(OBJECT_OFFSET(ArrayStorage, m_vector[0]), X86::ecx, X86::edx, sizeof(JSValuePtr), X86::eax);
     1390            m_jit.movl_mr(OBJECT_OFFSET(ArrayStorage, m_vector[0]), X86::ecx, X86::edx, sizeof(JSValue*), X86::eax);
    13911391            emitPutResult(instruction[i + 1].u.operand);
    13921392            i += 4;
     
    14271427            // This is a write to the slow part of the vector; first, we have to check if this would be the first write to this location.
    14281428            // FIXME: should be able to handle initial write to array; increment the the number of items in the array, and potentially update fast access cutoff.
    1429             m_jit.cmpl_i8m(0, OBJECT_OFFSET(ArrayStorage, m_vector[0]), X86::ecx, X86::edx, sizeof(JSValuePtr));
     1429            m_jit.cmpl_i8m(0, OBJECT_OFFSET(ArrayStorage, m_vector[0]), X86::ecx, X86::edx, sizeof(JSValue*));
    14301430            m_slowCases.append(SlowCaseEntry(m_jit.emitUnlinkedJe(), i));
    14311431
     
    14331433            m_jit.link(inFastVector, m_jit.label());
    14341434            emitGetArg(instruction[i + 3].u.operand, X86::eax);
    1435             m_jit.movl_rm(X86::eax, OBJECT_OFFSET(ArrayStorage, m_vector[0]), X86::ecx, X86::edx, sizeof(JSValuePtr));
     1435            m_jit.movl_rm(X86::eax, OBJECT_OFFSET(ArrayStorage, m_vector[0]), X86::ecx, X86::edx, sizeof(JSValue*));
    14361436            i += 4;
    14371437            break;
     
    14981498            m_jit.movl_mr(OBJECT_OFFSET(JSGlobalObject, m_propertyStorage), X86::eax, X86::eax);
    14991499            m_jit.movl_mr(offsetAddr, X86::edx);
    1500             m_jit.movl_mr(0, X86::eax, X86::edx, sizeof(JSValuePtr), X86::eax);
     1500            m_jit.movl_mr(0, X86::eax, X86::edx, sizeof(JSValue*), X86::eax);
    15011501            emitPutResult(instruction[i + 1].u.operand);
    15021502            X86Assembler::JmpSrc end = m_jit.emitUnlinkedJmp();
     
    15261526        case op_jnless: {
    15271527            unsigned target = instruction[i + 3].u.operand;
    1528             JSValuePtr src2imm = getConstantImmediateNumericArg(instruction[i + 2].u.operand);
     1528            JSValue* src2imm = getConstantImmediateNumericArg(instruction[i + 2].u.operand);
    15291529            if (src2imm) {
    15301530                emitGetArg(instruction[i + 1].u.operand, X86::edx);
     
    16441644        }
    16451645        case op_unexpected_load: {
    1646             JSValuePtr v = m_codeBlock->unexpectedConstants[instruction[i + 2].u.operand];
     1646            JSValue* v = m_codeBlock->unexpectedConstants[instruction[i + 2].u.operand];
    16471647            m_jit.movl_i32r(asInteger(v), X86::eax);
    16481648            emitPutResult(instruction[i + 1].u.operand);
     
    16951695            unsigned src2 = instruction[i + 3].u.operand;
    16961696            unsigned dst = instruction[i + 1].u.operand;
    1697             if (JSValuePtr value = getConstantImmediateNumericArg(src1)) {
     1697            if (JSValue* value = getConstantImmediateNumericArg(src1)) {
    16981698                emitGetArg(src2, X86::eax);
    16991699                emitJumpSlowCaseIfNotImmNum(X86::eax, i);
    17001700                m_jit.andl_i32r(asInteger(value), X86::eax); // FIXME: make it more obvious this is relying on the format of JSImmediate
    17011701                emitPutResult(dst);
    1702             } else if (JSValuePtr value = getConstantImmediateNumericArg(src2)) {
     1702            } else if (JSValue* value = getConstantImmediateNumericArg(src2)) {
    17031703                emitGetArg(src1, X86::eax);
    17041704                emitJumpSlowCaseIfNotImmNum(X86::eax, i);
     
    20402040        }
    20412041        case op_new_error: {
    2042             JSValuePtr message = m_codeBlock->unexpectedConstants[instruction[i + 3].u.operand];
     2042            JSValue* message = m_codeBlock->unexpectedConstants[instruction[i + 3].u.operand];
    20432043            emitPutArgConstant(instruction[i + 2].u.operand, 0);
    20442044            emitPutArgConstant(asInteger(message), 4);
     
    22392239            unsigned src1 = instruction[i + 2].u.operand;
    22402240            unsigned src2 = instruction[i + 3].u.operand;
    2241             if (JSValuePtr value = getConstantImmediateNumericArg(src1)) {
     2241            if (JSValue* value = getConstantImmediateNumericArg(src1)) {
    22422242                X86Assembler::JmpSrc notImm = iter->from;
    22432243                m_jit.link((++iter)->from, m_jit.label());
     
    22482248                emitCTICall(i, Machine::cti_op_add);
    22492249                emitPutResult(dst);
    2250             } else if (JSValuePtr value = getConstantImmediateNumericArg(src2)) {
     2250            } else if (JSValue* value = getConstantImmediateNumericArg(src2)) {
    22512251                X86Assembler::JmpSrc notImm = iter->from;
    22522252                m_jit.link((++iter)->from, m_jit.label());
     
    22902290
    22912291            // okay, missed the fast region, but it is still in the vector.  Get the value.
    2292             m_jit.movl_mr(OBJECT_OFFSET(ArrayStorage, m_vector[0]), X86::ecx, X86::edx, sizeof(JSValuePtr), X86::ecx);
     2292            m_jit.movl_mr(OBJECT_OFFSET(ArrayStorage, m_vector[0]), X86::ecx, X86::edx, sizeof(JSValue*), X86::ecx);
    22932293            // Check whether the value loaded is zero; if so we need to return undefined.
    22942294            m_jit.testl_rr(X86::ecx, X86::ecx);
     
    23332333
    23342334            unsigned target = instruction[i + 3].u.operand;
    2335             JSValuePtr src2imm = getConstantImmediateNumericArg(instruction[i + 2].u.operand);
     2335            JSValue* src2imm = getConstantImmediateNumericArg(instruction[i + 2].u.operand);
    23362336            if (src2imm) {
    23372337                m_jit.link(iter->from, m_jit.label());
     
    24032403
    24042404            unsigned target = instruction[i + 3].u.operand;
    2405             JSValuePtr src2imm = getConstantImmediateNumericArg(instruction[i + 2].u.operand);
     2405            JSValue* src2imm = getConstantImmediateNumericArg(instruction[i + 2].u.operand);
    24062406            if (src2imm) {
    24072407                m_jit.link(iter->from, m_jit.label());
     
    24872487        case op_jnless: {
    24882488            unsigned target = instruction[i + 3].u.operand;
    2489             JSValuePtr src2imm = getConstantImmediateNumericArg(instruction[i + 2].u.operand);
     2489            JSValue* src2imm = getConstantImmediateNumericArg(instruction[i + 2].u.operand);
    24902490            if (src2imm) {
    24912491                m_jit.link(iter->from, m_jit.label());
     
    26592659            int src1 = instruction[i + 2].u.operand;
    26602660            int src2 = instruction[i + 3].u.operand;
    2661             JSValuePtr src1Value = getConstantImmediateNumericArg(src1);
    2662             JSValuePtr src2Value = getConstantImmediateNumericArg(src2);
     2661            JSValue* src1Value = getConstantImmediateNumericArg(src1);
     2662            JSValue* src2Value = getConstantImmediateNumericArg(src2);
    26632663            int32_t value;
    26642664            if (src1Value && ((value = JSImmediate::intValue(src1Value)) > 0)) {
     
    28932893    // Checks out okay! - getDirectOffset
    28942894    m_jit.movl_mr(OBJECT_OFFSET(JSObject, m_propertyStorage), X86::eax, X86::eax);
    2895     m_jit.movl_mr(cachedOffset * sizeof(JSValuePtr), X86::eax, X86::eax);
     2895    m_jit.movl_mr(cachedOffset * sizeof(JSValue*), X86::eax, X86::eax);
    28962896    m_jit.ret();
    28972897
     
    29332933
    29342934    // Checks out okay! - getDirectOffset
    2935     m_jit.movl_mr(cachedOffset * sizeof(JSValuePtr), X86::edx, X86::ecx);
     2935    m_jit.movl_mr(cachedOffset * sizeof(JSValue*), X86::edx, X86::ecx);
    29362936
    29372937    X86Assembler::JmpSrc success = m_jit.emitUnlinkedJmp();
     
    29762976
    29772977    // Checks out okay! - getDirectOffset
    2978     m_jit.movl_mr(cachedOffset * sizeof(JSValuePtr), X86::edx, X86::eax);
     2978    m_jit.movl_mr(cachedOffset * sizeof(JSValue*), X86::edx, X86::eax);
    29792979
    29802980    m_jit.ret();
     
    30213021    PropertyStorage* protoPropertyStorage = &protoObject->m_propertyStorage;
    30223022    m_jit.movl_mr(static_cast<void*>(protoPropertyStorage), X86::edx);
    3023     m_jit.movl_mr(cachedOffset * sizeof(JSValuePtr), X86::edx, X86::eax);
     3023    m_jit.movl_mr(cachedOffset * sizeof(JSValue*), X86::edx, X86::eax);
    30243024    m_jit.ret();
    30253025
     
    30473047    // checks out okay! - putDirectOffset
    30483048    m_jit.movl_mr(OBJECT_OFFSET(JSObject, m_propertyStorage), X86::eax, X86::eax);
    3049     m_jit.movl_rm(X86::edx, cachedOffset * sizeof(JSValuePtr), X86::eax);
     3049    m_jit.movl_rm(X86::edx, cachedOffset * sizeof(JSValue*), X86::eax);
    30503050    m_jit.ret();
    30513051
     
    31343134    // write the value
    31353135    m_jit.movl_mr(OBJECT_OFFSET(JSObject, m_propertyStorage), X86::eax, X86::eax);
    3136     m_jit.movl_rm(X86::edx, cachedOffset * sizeof(JSValuePtr), X86::eax);
     3136    m_jit.movl_rm(X86::edx, cachedOffset * sizeof(JSValue*), X86::eax);
    31373137
    31383138    m_jit.ret();
     
    32503250
    32513251    // Repatch the offset into the propoerty map to load from, then repatch the StructureID to look for.
    3252     X86Assembler::repatchDisplacement(reinterpret_cast<intptr_t>(info.hotPathBegin) + repatchOffsetGetByIdPropertyMapOffset, cachedOffset * sizeof(JSValuePtr));
     3252    X86Assembler::repatchDisplacement(reinterpret_cast<intptr_t>(info.hotPathBegin) + repatchOffsetGetByIdPropertyMapOffset, cachedOffset * sizeof(JSValue*));
    32533253    X86Assembler::repatchImmediate(reinterpret_cast<intptr_t>(info.hotPathBegin) + repatchOffsetGetByIdStructureID, reinterpret_cast<uint32_t>(structureID));
    32543254}
     
    32633263
    32643264    // Repatch the offset into the propoerty map to load from, then repatch the StructureID to look for.
    3265     X86Assembler::repatchDisplacement(reinterpret_cast<intptr_t>(info.hotPathBegin) + repatchOffsetPutByIdPropertyMapOffset, cachedOffset * sizeof(JSValuePtr));
     3265    X86Assembler::repatchDisplacement(reinterpret_cast<intptr_t>(info.hotPathBegin) + repatchOffsetPutByIdPropertyMapOffset, cachedOffset * sizeof(JSValue*));
    32663266    X86Assembler::repatchImmediate(reinterpret_cast<intptr_t>(info.hotPathBegin) + repatchOffsetPutByIdStructureID, reinterpret_cast<uint32_t>(structureID));
    32673267}
  • trunk/JavaScriptCore/VM/CTI.h

    r37831 r37845  
    4848#define ARG_callFrame static_cast<CallFrame*>(ARGS[CTI_ARGS_callFrame])
    4949#define ARG_registerFile static_cast<RegisterFile*>(ARGS[CTI_ARGS_registerFile])
    50 #define ARG_exception static_cast<JSValuePtr*>(ARGS[CTI_ARGS_exception])
     50#define ARG_exception static_cast<JSValue**>(ARGS[CTI_ARGS_exception])
    5151#define ARG_profilerReference static_cast<Profiler**>(ARGS[CTI_ARGS_profilerReference])
    5252#define ARG_globalData static_cast<JSGlobalData*>(ARGS[CTI_ARGS_globalData])
     
    240240
    241241    extern "C" {
    242         JSValue* ctiTrampoline(void* code, RegisterFile*, CallFrame*, JSValuePtr* exception, Profiler**, JSGlobalData*);
     242        JSValue* ctiTrampoline(void* code, RegisterFile*, CallFrame*, JSValue** exception, Profiler**, JSGlobalData*);
    243243        void ctiVMThrowTrampoline();
    244244    };
     
    339339        static void unlinkCall(CallLinkInfo*);
    340340
    341         inline static JSValuePtr execute(void* code, RegisterFile* registerFile, CallFrame* callFrame, JSGlobalData* globalData, JSValuePtr* exception)
     341        inline static JSValue* execute(void* code, RegisterFile* registerFile, CallFrame* callFrame, JSGlobalData* globalData, JSValue** exception)
    342342        {
    343343            return ctiTrampoline(code, registerFile, callFrame, exception, Profiler::enabledProfilerReference(), globalData);
     
    347347        CTI(Machine*, CallFrame*, CodeBlock*);
    348348
    349         static uintptr_t asInteger(JSValuePtr);
     349        static uintptr_t asInteger(JSValue*);
    350350
    351351        bool isConstant(int src);
    352         JSValuePtr getConstant(CallFrame*, int src);
     352        JSValue* getConstant(CallFrame*, int src);
    353353
    354354        void privateCompileMainPass();
     
    391391        void emitGetFromCallFrameHeader(RegisterFile::CallFrameHeaderEntry entry, X86Assembler::RegisterID to);
    392392
    393         JSValuePtr getConstantImmediateNumericArg(unsigned src);
    394         unsigned getDeTaggedConstantImmediate(JSValuePtr imm);
     393        JSValue* getConstantImmediateNumericArg(unsigned src);
     394        unsigned getDeTaggedConstantImmediate(JSValue* imm);
    395395
    396396        void emitJumpSlowCaseIfIsJSCell(X86Assembler::RegisterID reg, unsigned opcodeIndex);
  • trunk/JavaScriptCore/VM/CodeBlock.cpp

    r37831 r37845  
    5353}
    5454
    55 static UString valueToSourceString(ExecState* exec, JSValuePtr val)
     55static UString valueToSourceString(ExecState* exec, JSValue* val)
    5656{
    5757    if (val->isString()) {
     
    7272}
    7373
    74 static CString constantName(ExecState* exec, int k, JSValuePtr value)
     74static CString constantName(ExecState* exec, int k, JSValue* value)
    7575{
    7676    return (valueToSourceString(exec, value) + "(@k" + UString::from(k) + ")").UTF8String();
     
    578578        case op_resolve_global: {
    579579            int r0 = (++it)->u.operand;
    580             JSValuePtr scope = static_cast<JSValuePtr>((++it)->u.jsCell);
     580            JSValue* scope = static_cast<JSValue*>((++it)->u.jsCell);
    581581            int id0 = (++it)->u.operand;
    582582            printf("[%4d] resolve_global\t %s, %s, %s\n", location, registerName(r0).c_str(), valueToSourceString(exec, scope).ascii(), idName(id0, identifiers[id0]).c_str());
     
    600600        case op_get_global_var: {
    601601            int r0 = (++it)->u.operand;
    602             JSValuePtr scope = static_cast<JSValuePtr>((++it)->u.jsCell);
     602            JSValue* scope = static_cast<JSValue*>((++it)->u.jsCell);
    603603            int index = (++it)->u.operand;
    604604            printf("[%4d] get_global_var\t %s, %s, %d\n", location, registerName(r0).c_str(), valueToSourceString(exec, scope).ascii(), index);
     
    606606        }
    607607        case op_put_global_var: {
    608             JSValuePtr scope = static_cast<JSValuePtr>((++it)->u.jsCell);
     608            JSValue* scope = static_cast<JSValue*>((++it)->u.jsCell);
    609609            int index = (++it)->u.operand;
    610610            int r0 = (++it)->u.operand;
  • trunk/JavaScriptCore/VM/CodeBlock.h

    r37831 r37845  
    213213    class EvalCodeCache {
    214214    public:
    215         PassRefPtr<EvalNode> get(ExecState* exec, const UString& evalSource, ScopeChainNode* scopeChain, JSValuePtr& exceptionValue)
     215        PassRefPtr<EvalNode> get(ExecState* exec, const UString& evalSource, ScopeChainNode* scopeChain, JSValue*& exceptionValue)
    216216        {
    217217            RefPtr<EvalNode> evalNode;
     
    343343        Vector<RefPtr<FuncExprNode> > functionExpressions;
    344344        Vector<Register> constantRegisters;
    345         Vector<JSValuePtr> unexpectedConstants;
     345        Vector<JSValue*> unexpectedConstants;
    346346        Vector<RefPtr<RegExp> > regexps;
    347347        Vector<HandlerInfo> exceptionHandlers;
  • trunk/JavaScriptCore/VM/CodeGenerator.cpp

    r37831 r37845  
    673673}
    674674
    675 RegisterID* CodeGenerator::addConstant(JSValuePtr v)
     675RegisterID* CodeGenerator::addConstant(JSValue* v)
    676676{
    677677    pair<JSValueMap::iterator, bool> result = m_jsValueMap.add(v, m_nextConstant);
     
    688688}
    689689
    690 unsigned CodeGenerator::addUnexpectedConstant(JSValuePtr v)
     690unsigned CodeGenerator::addUnexpectedConstant(JSValue* v)
    691691{
    692692    int index = m_codeBlock->unexpectedConstants.size();
     
    839839    if (number == HashTraits<double>::emptyValue() || HashTraits<double>::isDeletedValue(number))
    840840        return emitLoad(dst, jsNumber(globalData(), number));
    841     JSValuePtr& valueInMap = m_numberMap.add(number, noValue()).first->second;
     841    JSValue*& valueInMap = m_numberMap.add(number, noValue()).first->second;
    842842    if (!valueInMap)
    843843        valueInMap = jsNumber(globalData(), number);
     
    853853}
    854854
    855 RegisterID* CodeGenerator::emitLoad(RegisterID* dst, JSValuePtr v)
     855RegisterID* CodeGenerator::emitLoad(RegisterID* dst, JSValue* v)
    856856{
    857857    RegisterID* constantID = addConstant(v);
     
    863863RegisterID* CodeGenerator::emitLoad(RegisterID* dst, JSCell* cell)
    864864{
    865     JSValuePtr value = cell;
     865    JSValue* value = cell;
    866866    return emitLoad(dst, value);
    867867}
     
    985985}
    986986
    987 RegisterID* CodeGenerator::emitGetScopedVar(RegisterID* dst, size_t depth, int index, JSValuePtr globalObject)
     987RegisterID* CodeGenerator::emitGetScopedVar(RegisterID* dst, size_t depth, int index, JSValue* globalObject)
    988988{
    989989    if (globalObject) {
     
    10021002}
    10031003
    1004 RegisterID* CodeGenerator::emitPutScopedVar(size_t depth, int index, RegisterID* value, JSValuePtr globalObject)
     1004RegisterID* CodeGenerator::emitPutScopedVar(size_t depth, int index, RegisterID* value, JSValue* globalObject)
    10051005{
    10061006    if (globalObject) {
     
    14971497}
    14981498
    1499 RegisterID* CodeGenerator::emitNewError(RegisterID* dst, ErrorType type, JSValuePtr message)
     1499RegisterID* CodeGenerator::emitNewError(RegisterID* dst, ErrorType type, JSValue* message)
    15001500{
    15011501    emitOpcode(op_new_error);
  • trunk/JavaScriptCore/VM/CodeGenerator.h

    r37812 r37845  
    229229        RegisterID* emitLoad(RegisterID* dst, double);
    230230        RegisterID* emitLoad(RegisterID* dst, const Identifier&);
    231         RegisterID* emitLoad(RegisterID* dst, JSValuePtr);
     231        RegisterID* emitLoad(RegisterID* dst, JSValue*);
    232232        RegisterID* emitLoad(RegisterID* dst, JSCell*);
    233233        RegisterID* emitUnexpectedLoad(RegisterID* dst, bool);
     
    259259
    260260        RegisterID* emitResolve(RegisterID* dst, const Identifier& property);
    261         RegisterID* emitGetScopedVar(RegisterID* dst, size_t skip, int index, JSValuePtr globalObject);
    262         RegisterID* emitPutScopedVar(size_t skip, int index, RegisterID* value, JSValuePtr globalObject);
     261        RegisterID* emitGetScopedVar(RegisterID* dst, size_t skip, int index, JSValue* globalObject);
     262        RegisterID* emitPutScopedVar(size_t skip, int index, RegisterID* value, JSValue* globalObject);
    263263
    264264        RegisterID* emitResolveBase(RegisterID* dst, const Identifier& property);
     
    298298        RegisterID* emitCatch(RegisterID*, LabelID* start, LabelID* end);
    299299        void emitThrow(RegisterID* exc) { emitUnaryNoDstOp(op_throw, exc); }
    300         RegisterID* emitNewError(RegisterID* dst, ErrorType type, JSValuePtr message);
     300        RegisterID* emitNewError(RegisterID* dst, ErrorType type, JSValue* message);
    301301        void emitPushNewScope(RegisterID* dst, Identifier& property, RegisterID* value);
    302302
     
    348348
    349349        typedef HashMap<RefPtr<UString::Rep>, int, IdentifierRepHash, HashTraits<RefPtr<UString::Rep> >, IdentifierMapIndexHashTraits> IdentifierMap;
    350         typedef HashMap<double, JSValuePtr> NumberMap;
     350        typedef HashMap<double, JSValue*> NumberMap;
    351351        typedef HashMap<UString::Rep*, JSString*, IdentifierRepHash> IdentifierStringMap;
    352352
     
    398398        unsigned addConstant(FuncExprNode*);
    399399        unsigned addConstant(const Identifier&);
    400         RegisterID* addConstant(JSValuePtr);
    401         unsigned addUnexpectedConstant(JSValuePtr);
     400        RegisterID* addConstant(JSValue*);
     401        unsigned addUnexpectedConstant(JSValue*);
    402402        unsigned addRegExp(RegExp*);
    403403        StructureID* addStructureID();
  • trunk/JavaScriptCore/VM/ExceptionHelpers.cpp

    r37799 r37845  
    5959};
    6060
    61 JSValuePtr createInterruptedExecutionException(JSGlobalData* globalData)
     61JSValue* createInterruptedExecutionException(JSGlobalData* globalData)
    6262{
    6363    return new (globalData) InterruptedExecutionError(globalData);
    6464}
    6565
    66 JSValuePtr createError(ExecState* exec, ErrorType e, const char* msg)
     66JSValue* createError(ExecState* exec, ErrorType e, const char* msg)
    6767{
    6868    return Error::create(exec, e, msg, -1, -1, 0);
    6969}
    7070
    71 JSValuePtr createError(ExecState* exec, ErrorType e, const char* msg, const Identifier& label)
     71JSValue* createError(ExecState* exec, ErrorType e, const char* msg, const Identifier& label)
    7272{
    7373    UString message = msg;
     
    7676}
    7777
    78 JSValuePtr createError(ExecState* exec, ErrorType e, const char* msg, JSValuePtr v)
     78JSValue* createError(ExecState* exec, ErrorType e, const char* msg, JSValue* v)
    7979{
    8080    UString message = msg;
     
    8383}
    8484
    85 JSValuePtr createStackOverflowError(ExecState* exec)
     85JSValue* createStackOverflowError(ExecState* exec)
    8686{
    8787    return createError(exec, RangeError, "Maximum call stack size exceeded.");
    8888}
    8989
    90 JSValuePtr createUndefinedVariableError(ExecState* exec, const Identifier& ident, const Instruction* vPC, CodeBlock* codeBlock)
     90JSValue* createUndefinedVariableError(ExecState* exec, const Identifier& ident, const Instruction* vPC, CodeBlock* codeBlock)
    9191{
    9292    int startOffset = 0;
     
    105105bool isStrWhiteSpace(UChar c);
    106106
    107 static UString createErrorMessage(ExecState* exec, CodeBlock* codeBlock, int, int expressionStart, int expressionStop, JSValuePtr value, UString error)
     107static UString createErrorMessage(ExecState* exec, CodeBlock* codeBlock, int, int expressionStart, int expressionStop, JSValue* value, UString error)
    108108{
    109109    if (!expressionStop || expressionStart > codeBlock->source->length()) {
     
    149149}
    150150
    151 JSObject* createInvalidParamError(ExecState* exec, const char* op, JSValuePtr value, const Instruction* vPC, CodeBlock* codeBlock)
     151JSObject* createInvalidParamError(ExecState* exec, const char* op, JSValue* value, const Instruction* vPC, CodeBlock* codeBlock)
    152152{
    153153    UString message = "not a valid argument for '";
     
    167167}
    168168
    169 JSObject* createNotAConstructorError(ExecState* exec, JSValuePtr value, const Instruction* vPC, CodeBlock* codeBlock)
     169JSObject* createNotAConstructorError(ExecState* exec, JSValue* value, const Instruction* vPC, CodeBlock* codeBlock)
    170170{
    171171    int startOffset = 0;
     
    188188}
    189189
    190 JSValuePtr createNotAFunctionError(ExecState* exec, JSValuePtr value, const Instruction* vPC, CodeBlock* codeBlock)
     190JSValue* createNotAFunctionError(ExecState* exec, JSValue* value, const Instruction* vPC, CodeBlock* codeBlock)
    191191{
    192192    int startOffset = 0;
  • trunk/JavaScriptCore/VM/ExceptionHelpers.h

    r37706 r37845  
    4343    class Node;
    4444
    45     JSValuePtr createInterruptedExecutionException(JSGlobalData*);
    46     JSValuePtr createStackOverflowError(ExecState*);
    47     JSValuePtr createUndefinedVariableError(ExecState*, const Identifier&, const Instruction*, CodeBlock*);
     45    JSValue* createInterruptedExecutionException(JSGlobalData*);
     46    JSValue* createStackOverflowError(ExecState*);
     47    JSValue* createUndefinedVariableError(ExecState*, const Identifier&, const Instruction*, CodeBlock*);
    4848    JSNotAnObjectErrorStub* createNotAnObjectErrorStub(ExecState*, bool isNull);
    49     JSObject* createInvalidParamError(ExecState*, const char* op, JSValuePtr, const Instruction*, CodeBlock*);
    50     JSObject* createNotAConstructorError(ExecState*, JSValuePtr, const Instruction*, CodeBlock*);
    51     JSValuePtr createNotAFunctionError(ExecState*, JSValuePtr, const Instruction*, CodeBlock*);
     49    JSObject* createInvalidParamError(ExecState*, const char* op, JSValue*, const Instruction*, CodeBlock*);
     50    JSObject* createNotAConstructorError(ExecState*, JSValue*, const Instruction*, CodeBlock*);
     51    JSValue* createNotAFunctionError(ExecState*, JSValue*, const Instruction*, CodeBlock*);
    5252    JSObject* createNotAnObjectError(ExecState*, JSNotAnObjectErrorStub*, const Instruction*, CodeBlock*);
    5353
  • trunk/JavaScriptCore/VM/JSPropertyNameIterator.cpp

    r37684 r37845  
    3838}
    3939
    40 JSValuePtr JSPropertyNameIterator::toPrimitive(ExecState*, PreferredPrimitiveType) const
     40JSValue* JSPropertyNameIterator::toPrimitive(ExecState*, PreferredPrimitiveType) const
    4141{
    4242    ASSERT_NOT_REACHED();
     
    4444}
    4545
    46 bool JSPropertyNameIterator::getPrimitiveNumber(ExecState*, double&, JSValuePtr&)
     46bool JSPropertyNameIterator::getPrimitiveNumber(ExecState*, double&, JSValue*&)
    4747{
    4848    ASSERT_NOT_REACHED();
  • trunk/JavaScriptCore/VM/JSPropertyNameIterator.h

    r37684 r37845  
    4141    class JSPropertyNameIterator : public JSCell {
    4242    public:
    43         static JSPropertyNameIterator* create(ExecState*, JSValuePtr);
     43        static JSPropertyNameIterator* create(ExecState*, JSValue*);
    4444
    4545        virtual ~JSPropertyNameIterator();
    4646
    47         virtual JSValuePtr toPrimitive(ExecState*, PreferredPrimitiveType) const;
    48         virtual bool getPrimitiveNumber(ExecState*, double&, JSValuePtr&);
     47        virtual JSValue* toPrimitive(ExecState*, PreferredPrimitiveType) const;
     48        virtual bool getPrimitiveNumber(ExecState*, double&, JSValue*&);
    4949        virtual bool toBoolean(ExecState*) const;
    5050        virtual double toNumber(ExecState*) const;
     
    5454        virtual void mark();
    5555
    56         JSValuePtr next(ExecState*);
     56        JSValue* next(ExecState*);
    5757        void invalidate();
    5858
     
    8484}
    8585
    86 inline JSPropertyNameIterator* JSPropertyNameIterator::create(ExecState* exec, JSValuePtr v)
     86inline JSPropertyNameIterator* JSPropertyNameIterator::create(ExecState* exec, JSValue* v)
    8787{
    8888    if (v->isUndefinedOrNull())
     
    9595}
    9696
    97 inline JSValuePtr JSPropertyNameIterator::next(ExecState* exec)
     97inline JSValue* JSPropertyNameIterator::next(ExecState* exec)
    9898{
    9999    if (m_position == m_end)
  • trunk/JavaScriptCore/VM/Machine.cpp

    r37831 r37845  
    129129// FIXME: This operation should be called "getNumber", not "isNumber" (as it is in JSValue.h).
    130130// FIXME: There's no need to have a "slow" version of this. All versions should be fast.
    131 static ALWAYS_INLINE bool fastIsNumber(JSValuePtr value, double& arg)
     131static ALWAYS_INLINE bool fastIsNumber(JSValue* value, double& arg)
    132132{
    133133    if (JSImmediate::isNumber(value))
     
    140140}
    141141
    142 // FIXME: Why doesn't JSValuePtr::toInt32 have the Heap::isNumber optimization?
    143 static bool fastToInt32(JSValuePtr value, int32_t& arg)
     142// FIXME: Why doesn't JSValue*::toInt32 have the Heap::isNumber optimization?
     143static bool fastToInt32(JSValue* value, int32_t& arg)
    144144{
    145145    if (JSImmediate::isNumber(value))
     
    152152}
    153153
    154 static ALWAYS_INLINE bool fastToUInt32(JSValuePtr value, uint32_t& arg)
     154static ALWAYS_INLINE bool fastToUInt32(JSValue* value, uint32_t& arg)
    155155{
    156156    if (JSImmediate::isNumber(value)) {
     
    167167}
    168168
    169 static inline bool jsLess(CallFrame* callFrame, JSValuePtr v1, JSValuePtr v2)
     169static inline bool jsLess(CallFrame* callFrame, JSValue* v1, JSValue* v2)
    170170{
    171171    if (JSImmediate::areBothImmediateNumbers(v1, v2))
     
    181181        return asString(v1)->value() < asString(v2)->value();
    182182
    183     JSValuePtr p1;
    184     JSValuePtr p2;
     183    JSValue* p1;
     184    JSValue* p2;
    185185    bool wasNotString1 = v1->getPrimitiveNumber(callFrame, n1, p1);
    186186    bool wasNotString2 = v2->getPrimitiveNumber(callFrame, n2, p2);
     
    192192}
    193193
    194 static inline bool jsLessEq(CallFrame* callFrame, JSValuePtr v1, JSValuePtr v2)
     194static inline bool jsLessEq(CallFrame* callFrame, JSValue* v1, JSValue* v2)
    195195{
    196196    if (JSImmediate::areBothImmediateNumbers(v1, v2))
     
    206206        return !(asString(v2)->value() < asString(v1)->value());
    207207
    208     JSValuePtr p1;
    209     JSValuePtr p2;
     208    JSValue* p1;
     209    JSValue* p2;
    210210    bool wasNotString1 = v1->getPrimitiveNumber(callFrame, n1, p1);
    211211    bool wasNotString2 = v2->getPrimitiveNumber(callFrame, n2, p2);
     
    217217}
    218218
    219 static NEVER_INLINE JSValuePtr jsAddSlowCase(CallFrame* callFrame, JSValuePtr v1, JSValuePtr v2)
     219static NEVER_INLINE JSValue* jsAddSlowCase(CallFrame* callFrame, JSValue* v1, JSValue* v2)
    220220{
    221221    // exception for the Date exception in defaultValue()
    222     JSValuePtr p1 = v1->toPrimitive(callFrame);
    223     JSValuePtr p2 = v2->toPrimitive(callFrame);
     222    JSValue* p1 = v1->toPrimitive(callFrame);
     223    JSValue* p2 = v2->toPrimitive(callFrame);
    224224
    225225    if (p1->isString() || p2->isString()) {
     
    242242//    4000    Add case: 3 5
    243243
    244 static ALWAYS_INLINE JSValuePtr jsAdd(CallFrame* callFrame, JSValuePtr v1, JSValuePtr v2)
     244static ALWAYS_INLINE JSValue* jsAdd(CallFrame* callFrame, JSValue* v1, JSValue* v2)
    245245{
    246246    double left;
     
    273273}
    274274
    275 static JSValuePtr jsTypeStringForValue(CallFrame* callFrame, JSValuePtr v)
     275static JSValue* jsTypeStringForValue(CallFrame* callFrame, JSValue* v)
    276276{
    277277    if (v->isUndefined())
     
    295295}
    296296
    297 static bool jsIsObjectType(JSValuePtr v)
     297static bool jsIsObjectType(JSValue* v)
    298298{
    299299    if (JSImmediate::isImmediate(v))
     
    313313}
    314314
    315 static bool jsIsFunctionType(JSValuePtr v)
     315static bool jsIsFunctionType(JSValue* v)
    316316{
    317317    if (v->isObject()) {
     
    323323}
    324324
    325 NEVER_INLINE bool Machine::resolve(CallFrame* callFrame, Instruction* vPC, JSValuePtr& exceptionValue)
     325NEVER_INLINE bool Machine::resolve(CallFrame* callFrame, Instruction* vPC, JSValue*& exceptionValue)
    326326{
    327327    int dst = (vPC + 1)->u.operand;
     
    339339        PropertySlot slot(o);
    340340        if (o->getPropertySlot(callFrame, ident, slot)) {
    341             JSValuePtr result = slot.getValue(callFrame, ident);
     341            JSValue* result = slot.getValue(callFrame, ident);
    342342            exceptionValue = callFrame->globalData().exception;
    343343            if (exceptionValue)
     
    351351}
    352352
    353 NEVER_INLINE bool Machine::resolveSkip(CallFrame* callFrame, Instruction* vPC, JSValuePtr& exceptionValue)
     353NEVER_INLINE bool Machine::resolveSkip(CallFrame* callFrame, Instruction* vPC, JSValue*& exceptionValue)
    354354{
    355355    CodeBlock* codeBlock = callFrame->codeBlock();
     
    372372        PropertySlot slot(o);
    373373        if (o->getPropertySlot(callFrame, ident, slot)) {
    374             JSValuePtr result = slot.getValue(callFrame, ident);
     374            JSValue* result = slot.getValue(callFrame, ident);
    375375            exceptionValue = callFrame->globalData().exception;
    376376            if (exceptionValue)
     
    384384}
    385385
    386 NEVER_INLINE bool Machine::resolveGlobal(CallFrame* callFrame, Instruction* vPC, JSValuePtr& exceptionValue)
     386NEVER_INLINE bool Machine::resolveGlobal(CallFrame* callFrame, Instruction* vPC, JSValue*& exceptionValue)
    387387{
    388388    int dst = (vPC + 1)->u.operand;
     
    402402    PropertySlot slot(globalObject);
    403403    if (globalObject->getPropertySlot(callFrame, ident, slot)) {
    404         JSValuePtr result = slot.getValue(callFrame, ident);
     404        JSValue* result = slot.getValue(callFrame, ident);
    405405        if (slot.isCacheable()) {
    406406            if (vPC[4].u.structureID)
     
    424424}
    425425
    426 static ALWAYS_INLINE JSValuePtr inlineResolveBase(CallFrame* callFrame, Identifier& property, ScopeChainNode* scopeChain)
     426static ALWAYS_INLINE JSValue* inlineResolveBase(CallFrame* callFrame, Identifier& property, ScopeChainNode* scopeChain)
    427427{
    428428    ScopeChainIterator iter = scopeChain->begin();
     
    454454}
    455455
    456 NEVER_INLINE bool Machine::resolveBaseAndProperty(CallFrame* callFrame, Instruction* vPC, JSValuePtr& exceptionValue)
     456NEVER_INLINE bool Machine::resolveBaseAndProperty(CallFrame* callFrame, Instruction* vPC, JSValue*& exceptionValue)
    457457{
    458458    int baseDst = (vPC + 1)->u.operand;
     
    475475        PropertySlot slot(base);
    476476        if (base->getPropertySlot(callFrame, ident, slot)) {
    477             JSValuePtr result = slot.getValue(callFrame, ident);
     477            JSValue* result = slot.getValue(callFrame, ident);
    478478            exceptionValue = callFrame->globalData().exception;
    479479            if (exceptionValue)
     
    490490}
    491491
    492 NEVER_INLINE bool Machine::resolveBaseAndFunc(CallFrame* callFrame, Instruction* vPC, JSValuePtr& exceptionValue)
     492NEVER_INLINE bool Machine::resolveBaseAndFunc(CallFrame* callFrame, Instruction* vPC, JSValue*& exceptionValue)
    493493{
    494494    int baseDst = (vPC + 1)->u.operand;
     
    519519            // We also handle wrapper substitution for the global object at the same time.
    520520            JSObject* thisObj = base->toThisObject(callFrame);
    521             JSValuePtr result = slot.getValue(callFrame, ident);
     521            JSValue* result = slot.getValue(callFrame, ident);
    522522            exceptionValue = callFrame->globalData().exception;
    523523            if (exceptionValue)
     
    572572}
    573573
    574 static NEVER_INLINE bool isNotObject(CallFrame* callFrame, bool forInstanceOf, CodeBlock* codeBlock, const Instruction* vPC, JSValuePtr value, JSValuePtr& exceptionData)
     574static NEVER_INLINE bool isNotObject(CallFrame* callFrame, bool forInstanceOf, CodeBlock* codeBlock, const Instruction* vPC, JSValue* value, JSValue*& exceptionData)
    575575{
    576576    if (value->isObject())
     
    580580}
    581581
    582 NEVER_INLINE JSValuePtr Machine::callEval(CallFrame* callFrame, JSObject* thisObj, ScopeChainNode* scopeChain, RegisterFile* registerFile, int argv, int argc, JSValuePtr& exceptionValue)
     582NEVER_INLINE JSValue* Machine::callEval(CallFrame* callFrame, JSObject* thisObj, ScopeChainNode* scopeChain, RegisterFile* registerFile, int argv, int argc, JSValue*& exceptionValue)
    583583{
    584584    if (argc < 2)
    585585        return jsUndefined();
    586586
    587     JSValuePtr program = callFrame[argv + 1].jsValue(callFrame);
     587    JSValue* program = callFrame[argv + 1].jsValue(callFrame);
    588588
    589589    if (!program->isString())
     
    595595    RefPtr<EvalNode> evalNode = codeBlock->evalCodeCache.get(callFrame, programSource, scopeChain, exceptionValue);
    596596
    597     JSValuePtr result = jsUndefined();
     597    JSValue* result = jsUndefined();
    598598    if (evalNode)
    599599        result = callFrame->globalData().machine->execute(evalNode.get(), callFrame, thisObj, callFrame->registers() - registerFile->start() + argv + 1 + RegisterFile::CallFrameHeaderSize, scopeChain, &exceptionValue);
     
    747747}
    748748
    749 NEVER_INLINE bool Machine::unwindCallFrame(CallFrame*& callFrame, JSValuePtr exceptionValue, const Instruction*& vPC, CodeBlock*& codeBlock)
     749NEVER_INLINE bool Machine::unwindCallFrame(CallFrame*& callFrame, JSValue* exceptionValue, const Instruction*& vPC, CodeBlock*& codeBlock)
    750750{
    751751    CodeBlock* oldCodeBlock = codeBlock;
     
    790790}
    791791
    792 NEVER_INLINE Instruction* Machine::throwException(CallFrame*& callFrame, JSValuePtr& exceptionValue, const Instruction* vPC, bool explicitThrow)
     792NEVER_INLINE Instruction* Machine::throwException(CallFrame*& callFrame, JSValue*& exceptionValue, const Instruction* vPC, bool explicitThrow)
    793793{
    794794    // Set up the exception object
     
    889889};
    890890
    891 JSValuePtr Machine::execute(ProgramNode* programNode, CallFrame* callFrame, ScopeChainNode* scopeChain, JSObject* thisObj, JSValuePtr* exception)
     891JSValue* Machine::execute(ProgramNode* programNode, CallFrame* callFrame, ScopeChainNode* scopeChain, JSObject* thisObj, JSValue** exception)
    892892{
    893893    ASSERT(!scopeChain->globalData->exception);
     
    928928    if (!codeBlock->ctiCode)
    929929        CTI::compile(this, newCallFrame, codeBlock);
    930     JSValuePtr result = CTI::execute(codeBlock->ctiCode, &m_registerFile, newCallFrame, scopeChain->globalData, exception);
     930    JSValue* result = CTI::execute(codeBlock->ctiCode, &m_registerFile, newCallFrame, scopeChain->globalData, exception);
    931931#else
    932     JSValuePtr result = privateExecute(Normal, &m_registerFile, newCallFrame, exception);
     932    JSValue* result = privateExecute(Normal, &m_registerFile, newCallFrame, exception);
    933933#endif
    934934    m_reentryDepth--;
     
    947947}
    948948
    949 JSValuePtr Machine::execute(FunctionBodyNode* functionBodyNode, CallFrame* callFrame, JSFunction* function, JSObject* thisObj, const ArgList& args, ScopeChainNode* scopeChain, JSValuePtr* exception)
     949JSValue* Machine::execute(FunctionBodyNode* functionBodyNode, CallFrame* callFrame, JSFunction* function, JSObject* thisObj, const ArgList& args, ScopeChainNode* scopeChain, JSValue** exception)
    950950{
    951951    ASSERT(!scopeChain->globalData->exception);
     
    991991    if (!codeBlock->ctiCode)
    992992        CTI::compile(this, newCallFrame, codeBlock);
    993     JSValuePtr result = CTI::execute(codeBlock->ctiCode, &m_registerFile, newCallFrame, scopeChain->globalData, exception);
     993    JSValue* result = CTI::execute(codeBlock->ctiCode, &m_registerFile, newCallFrame, scopeChain->globalData, exception);
    994994#else
    995     JSValuePtr result = privateExecute(Normal, &m_registerFile, newCallFrame, exception);
     995    JSValue* result = privateExecute(Normal, &m_registerFile, newCallFrame, exception);
    996996#endif
    997997    m_reentryDepth--;
     
    10061006}
    10071007
    1008 JSValuePtr Machine::execute(EvalNode* evalNode, CallFrame* callFrame, JSObject* thisObj, ScopeChainNode* scopeChain, JSValuePtr* exception)
     1008JSValue* Machine::execute(EvalNode* evalNode, CallFrame* callFrame, JSObject* thisObj, ScopeChainNode* scopeChain, JSValue** exception)
    10091009{
    10101010    return execute(evalNode, callFrame, thisObj, m_registerFile.size() + evalNode->byteCode(scopeChain).numParameters + RegisterFile::CallFrameHeaderSize, scopeChain, exception);
    10111011}
    10121012
    1013 JSValuePtr Machine::execute(EvalNode* evalNode, CallFrame* callFrame, JSObject* thisObj, int registerOffset, ScopeChainNode* scopeChain, JSValuePtr* exception)
     1013JSValue* Machine::execute(EvalNode* evalNode, CallFrame* callFrame, JSObject* thisObj, int registerOffset, ScopeChainNode* scopeChain, JSValue** exception)
    10141014{
    10151015    ASSERT(!scopeChain->globalData->exception);
     
    10801080    if (!codeBlock->ctiCode)
    10811081        CTI::compile(this, newCallFrame, codeBlock);
    1082     JSValuePtr result = CTI::execute(codeBlock->ctiCode, &m_registerFile, newCallFrame, scopeChain->globalData, exception);
     1082    JSValue* result = CTI::execute(codeBlock->ctiCode, &m_registerFile, newCallFrame, scopeChain->globalData, exception);
    10831083#else
    1084     JSValuePtr result = privateExecute(Normal, &m_registerFile, newCallFrame, exception);
     1084    JSValue* result = privateExecute(Normal, &m_registerFile, newCallFrame, exception);
    10851085#endif
    10861086    m_reentryDepth--;
     
    11721172// We have to return a JSValue here, gcc seems to produce worse code if
    11731173// we attempt to return a bool
    1174 ALWAYS_INLINE JSValuePtr Machine::checkTimeout(JSGlobalObject* globalObject)
     1174ALWAYS_INLINE JSValue* Machine::checkTimeout(JSGlobalObject* globalObject)
    11751175{
    11761176    unsigned currentTime = getCPUTime();
     
    12131213    CodeBlock* codeBlock = callFrame->codeBlock();
    12141214    Identifier& property = codeBlock->identifiers[(++vPC)->u.operand];
    1215     JSValuePtr value = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     1215    JSValue* value = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    12161216    JSObject* scope = new (callFrame) JSStaticScopeObject(callFrame, property, value, DontDelete);
    12171217    callFrame[dst] = scope;
     
    12221222static StructureIDChain* cachePrototypeChain(CallFrame* callFrame, StructureID* structureID)
    12231223{
    1224     JSValuePtr prototype = structureID->prototypeForLookup(callFrame);
     1224    JSValue* prototype = structureID->prototypeForLookup(callFrame);
    12251225    if (JSImmediate::isImmediate(prototype))
    12261226        return 0;
     
    12301230}
    12311231
    1232 NEVER_INLINE void Machine::tryCachePutByID(CallFrame* callFrame, CodeBlock* codeBlock, Instruction* vPC, JSValuePtr baseValue, const PutPropertySlot& slot)
     1232NEVER_INLINE void Machine::tryCachePutByID(CallFrame* callFrame, CodeBlock* codeBlock, Instruction* vPC, JSValue* baseValue, const PutPropertySlot& slot)
    12331233{
    12341234    // Recursive invocation may already have specialized this instruction.
     
    13071307}
    13081308
    1309 NEVER_INLINE void Machine::tryCacheGetByID(CallFrame* callFrame, CodeBlock* codeBlock, Instruction* vPC, JSValuePtr baseValue, const Identifier& propertyName, const PropertySlot& slot)
     1309NEVER_INLINE void Machine::tryCacheGetByID(CallFrame* callFrame, CodeBlock* codeBlock, Instruction* vPC, JSValue* baseValue, const Identifier& propertyName, const PropertySlot& slot)
    13101310{
    13111311    // Recursive invocation may already have specialized this instruction.
     
    13901390    JSObject* o = asObject(baseValue);
    13911391    while (slot.slotBase() != o) {
    1392         JSValuePtr v = o->structureID()->prototypeForLookup(callFrame);
     1392        JSValue* v = o->structureID()->prototypeForLookup(callFrame);
    13931393
    13941394        // If we didn't find base in baseValue's prototype chain, then baseValue
     
    14321432}
    14331433
    1434 JSValuePtr Machine::privateExecute(ExecutionFlag flag, RegisterFile* registerFile, CallFrame* callFrame, JSValuePtr* exception)
     1434JSValue* Machine::privateExecute(ExecutionFlag flag, RegisterFile* registerFile, CallFrame* callFrame, JSValue** exception)
    14351435{
    14361436    // One-time initialization of our address tables. We have to put this code
     
    14581458
    14591459    JSGlobalData* globalData = &callFrame->globalData();
    1460     JSValuePtr exceptionValue = noValue();
     1460    JSValue* exceptionValue = noValue();
    14611461    Instruction* handlerVPC = 0;
    14621462
     
    15671567        */
    15681568        int dst = (++vPC)->u.operand;
    1569         JSValuePtr src1 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    1570         JSValuePtr src2 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     1569        JSValue* src1 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     1570        JSValue* src2 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    15711571        if (JSImmediate::areBothImmediateNumbers(src1, src2))
    15721572            callFrame[dst] = jsBoolean(src1 == src2);
    15731573        else {
    1574             JSValuePtr result = jsBoolean(equalSlowCase(callFrame, src1, src2));
     1574            JSValue* result = jsBoolean(equalSlowCase(callFrame, src1, src2));
    15751575            VM_CHECK_EXCEPTION();
    15761576            callFrame[dst] = result;
     
    15871587        */
    15881588        int dst = (++vPC)->u.operand;
    1589         JSValuePtr src = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     1589        JSValue* src = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    15901590
    15911591        if (src->isUndefinedOrNull()) {
     
    16071607        */
    16081608        int dst = (++vPC)->u.operand;
    1609         JSValuePtr src1 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    1610         JSValuePtr src2 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     1609        JSValue* src1 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     1610        JSValue* src2 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    16111611        if (JSImmediate::areBothImmediateNumbers(src1, src2))
    16121612            callFrame[dst] = jsBoolean(src1 != src2);
    16131613        else {
    1614             JSValuePtr result = jsBoolean(!equalSlowCase(callFrame, src1, src2));
     1614            JSValue* result = jsBoolean(!equalSlowCase(callFrame, src1, src2));
    16151615            VM_CHECK_EXCEPTION();
    16161616            callFrame[dst] = result;
     
    16271627        */
    16281628        int dst = (++vPC)->u.operand;
    1629         JSValuePtr src = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     1629        JSValue* src = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    16301630
    16311631        if (src->isUndefinedOrNull()) {
     
    16471647        */
    16481648        int dst = (++vPC)->u.operand;
    1649         JSValuePtr src1 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    1650         JSValuePtr src2 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     1649        JSValue* src1 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     1650        JSValue* src2 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    16511651        if (JSImmediate::areBothImmediate(src1, src2))
    16521652            callFrame[dst] = jsBoolean(src1 == src2);
     
    16671667        */
    16681668        int dst = (++vPC)->u.operand;
    1669         JSValuePtr src1 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    1670         JSValuePtr src2 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     1669        JSValue* src1 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     1670        JSValue* src2 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    16711671
    16721672        if (JSImmediate::areBothImmediate(src1, src2))
     
    16881688        */
    16891689        int dst = (++vPC)->u.operand;
    1690         JSValuePtr src1 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    1691         JSValuePtr src2 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    1692         JSValuePtr result = jsBoolean(jsLess(callFrame, src1, src2));
     1690        JSValue* src1 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     1691        JSValue* src2 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     1692        JSValue* result = jsBoolean(jsLess(callFrame, src1, src2));
    16931693        VM_CHECK_EXCEPTION();
    16941694        callFrame[dst] = result;
     
    17051705        */
    17061706        int dst = (++vPC)->u.operand;
    1707         JSValuePtr src1 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    1708         JSValuePtr src2 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    1709         JSValuePtr result = jsBoolean(jsLessEq(callFrame, src1, src2));
     1707        JSValue* src1 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     1708        JSValue* src2 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     1709        JSValue* result = jsBoolean(jsLessEq(callFrame, src1, src2));
    17101710        VM_CHECK_EXCEPTION();
    17111711        callFrame[dst] = result;
     
    17211721        */
    17221722        int srcDst = (++vPC)->u.operand;
    1723         JSValuePtr v = callFrame[srcDst].jsValue(callFrame);
     1723        JSValue* v = callFrame[srcDst].jsValue(callFrame);
    17241724        if (JSImmediate::canDoFastAdditiveOperations(v))
    17251725            callFrame[srcDst] = JSImmediate::incImmediateNumber(v);
    17261726        else {
    1727             JSValuePtr result = jsNumber(callFrame, v->toNumber(callFrame) + 1);
     1727            JSValue* result = jsNumber(callFrame, v->toNumber(callFrame) + 1);
    17281728            VM_CHECK_EXCEPTION();
    17291729            callFrame[srcDst] = result;
     
    17401740        */
    17411741        int srcDst = (++vPC)->u.operand;
    1742         JSValuePtr v = callFrame[srcDst].jsValue(callFrame);
     1742        JSValue* v = callFrame[srcDst].jsValue(callFrame);
    17431743        if (JSImmediate::canDoFastAdditiveOperations(v))
    17441744            callFrame[srcDst] = JSImmediate::decImmediateNumber(v);
    17451745        else {
    1746             JSValuePtr result = jsNumber(callFrame, v->toNumber(callFrame) - 1);
     1746            JSValue* result = jsNumber(callFrame, v->toNumber(callFrame) - 1);
    17471747            VM_CHECK_EXCEPTION();
    17481748            callFrame[srcDst] = result;
     
    17611761        int dst = (++vPC)->u.operand;
    17621762        int srcDst = (++vPC)->u.operand;
    1763         JSValuePtr v = callFrame[srcDst].jsValue(callFrame);
     1763        JSValue* v = callFrame[srcDst].jsValue(callFrame);
    17641764        if (JSImmediate::canDoFastAdditiveOperations(v)) {
    17651765            callFrame[dst] = v;
    17661766            callFrame[srcDst] = JSImmediate::incImmediateNumber(v);
    17671767        } else {
    1768             JSValuePtr number = callFrame[srcDst].jsValue(callFrame)->toJSNumber(callFrame);
     1768            JSValue* number = callFrame[srcDst].jsValue(callFrame)->toJSNumber(callFrame);
    17691769            VM_CHECK_EXCEPTION();
    17701770            callFrame[dst] = number;
     
    17841784        int dst = (++vPC)->u.operand;
    17851785        int srcDst = (++vPC)->u.operand;
    1786         JSValuePtr v = callFrame[srcDst].jsValue(callFrame);
     1786        JSValue* v = callFrame[srcDst].jsValue(callFrame);
    17871787        if (JSImmediate::canDoFastAdditiveOperations(v)) {
    17881788            callFrame[dst] = v;
    17891789            callFrame[srcDst] = JSImmediate::decImmediateNumber(v);
    17901790        } else {
    1791             JSValuePtr number = callFrame[srcDst].jsValue(callFrame)->toJSNumber(callFrame);
     1791            JSValue* number = callFrame[srcDst].jsValue(callFrame)->toJSNumber(callFrame);
    17921792            VM_CHECK_EXCEPTION();
    17931793            callFrame[dst] = number;
     
    18071807        int src = (++vPC)->u.operand;
    18081808
    1809         JSValuePtr srcVal = callFrame[src].jsValue(callFrame);
     1809        JSValue* srcVal = callFrame[src].jsValue(callFrame);
    18101810
    18111811        if (LIKELY(srcVal->isNumber()))
    18121812            callFrame[dst] = callFrame[src];
    18131813        else {
    1814             JSValuePtr result = srcVal->toJSNumber(callFrame);
     1814            JSValue* result = srcVal->toJSNumber(callFrame);
    18151815            VM_CHECK_EXCEPTION();
    18161816            callFrame[dst] = result;
     
    18271827        */
    18281828        int dst = (++vPC)->u.operand;
    1829         JSValuePtr src = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     1829        JSValue* src = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    18301830        double v;
    18311831        if (fastIsNumber(src, v))
    18321832            callFrame[dst] = jsNumber(callFrame, -v);
    18331833        else {
    1834             JSValuePtr result = jsNumber(callFrame, -src->toNumber(callFrame));
     1834            JSValue* result = jsNumber(callFrame, -src->toNumber(callFrame));
    18351835            VM_CHECK_EXCEPTION();
    18361836            callFrame[dst] = result;
     
    18481848        */
    18491849        int dst = (++vPC)->u.operand;
    1850         JSValuePtr src1 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    1851         JSValuePtr src2 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     1850        JSValue* src1 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     1851        JSValue* src2 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    18521852        if (JSImmediate::canDoFastAdditiveOperations(src1) && JSImmediate::canDoFastAdditiveOperations(src2))
    18531853            callFrame[dst] = JSImmediate::addImmediateNumbers(src1, src2);
    18541854        else {
    1855             JSValuePtr result = jsAdd(callFrame, src1, src2);
     1855            JSValue* result = jsAdd(callFrame, src1, src2);
    18561856            VM_CHECK_EXCEPTION();
    18571857            callFrame[dst] = result;
     
    18671867        */
    18681868        int dst = (++vPC)->u.operand;
    1869         JSValuePtr src1 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    1870         JSValuePtr src2 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     1869        JSValue* src1 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     1870        JSValue* src2 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    18711871        double left;
    18721872        double right;
     
    18811881            callFrame[dst] = jsNumber(callFrame, left * right);
    18821882        else {
    1883             JSValuePtr result = jsNumber(callFrame, src1->toNumber(callFrame) * src2->toNumber(callFrame));
     1883            JSValue* result = jsNumber(callFrame, src1->toNumber(callFrame) * src2->toNumber(callFrame));
    18841884            VM_CHECK_EXCEPTION();
    18851885            callFrame[dst] = result;
     
    18971897        */
    18981898        int dst = (++vPC)->u.operand;
    1899         JSValuePtr dividend = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    1900         JSValuePtr divisor = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     1899        JSValue* dividend = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     1900        JSValue* divisor = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    19011901        double left;
    19021902        double right;
     
    19041904            callFrame[dst] = jsNumber(callFrame, left / right);
    19051905        else {
    1906             JSValuePtr result = jsNumber(callFrame, dividend->toNumber(callFrame) / divisor->toNumber(callFrame));
     1906            JSValue* result = jsNumber(callFrame, dividend->toNumber(callFrame) / divisor->toNumber(callFrame));
    19071907            VM_CHECK_EXCEPTION();
    19081908            callFrame[dst] = result;
     
    19221922        int divisor = (++vPC)->u.operand;
    19231923
    1924         JSValuePtr dividendValue = callFrame[dividend].jsValue(callFrame);
    1925         JSValuePtr divisorValue = callFrame[divisor].jsValue(callFrame);
     1924        JSValue* dividendValue = callFrame[dividend].jsValue(callFrame);
     1925        JSValue* divisorValue = callFrame[divisor].jsValue(callFrame);
    19261926
    19271927        if (JSImmediate::areBothImmediateNumbers(dividendValue, divisorValue) && divisorValue != JSImmediate::from(0)) {
     
    19321932
    19331933        double d = dividendValue->toNumber(callFrame);
    1934         JSValuePtr result = jsNumber(callFrame, fmod(d, divisorValue->toNumber(callFrame)));
     1934        JSValue* result = jsNumber(callFrame, fmod(d, divisorValue->toNumber(callFrame)));
    19351935        VM_CHECK_EXCEPTION();
    19361936        callFrame[dst] = result;
     
    19461946        */
    19471947        int dst = (++vPC)->u.operand;
    1948         JSValuePtr src1 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    1949         JSValuePtr src2 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     1948        JSValue* src1 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     1949        JSValue* src2 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    19501950        double left;
    19511951        double right;
     
    19551955            callFrame[dst] = jsNumber(callFrame, left - right);
    19561956        else {
    1957             JSValuePtr result = jsNumber(callFrame, src1->toNumber(callFrame) - src2->toNumber(callFrame));
     1957            JSValue* result = jsNumber(callFrame, src1->toNumber(callFrame) - src2->toNumber(callFrame));
    19581958            VM_CHECK_EXCEPTION();
    19591959            callFrame[dst] = result;
     
    19701970        */
    19711971        int dst = (++vPC)->u.operand;
    1972         JSValuePtr val = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    1973         JSValuePtr shift = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     1972        JSValue* val = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     1973        JSValue* shift = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    19741974        int32_t left;
    19751975        uint32_t right;
     
    19791979            callFrame[dst] = jsNumber(callFrame, left << (right & 0x1f));
    19801980        else {
    1981             JSValuePtr result = jsNumber(callFrame, (val->toInt32(callFrame)) << (shift->toUInt32(callFrame) & 0x1f));
     1981            JSValue* result = jsNumber(callFrame, (val->toInt32(callFrame)) << (shift->toUInt32(callFrame) & 0x1f));
    19821982            VM_CHECK_EXCEPTION();
    19831983            callFrame[dst] = result;
     
    19951995        */
    19961996        int dst = (++vPC)->u.operand;
    1997         JSValuePtr val = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    1998         JSValuePtr shift = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     1997        JSValue* val = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     1998        JSValue* shift = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    19991999        int32_t left;
    20002000        uint32_t right;
     
    20042004            callFrame[dst] = jsNumber(callFrame, left >> (right & 0x1f));
    20052005        else {
    2006             JSValuePtr result = jsNumber(callFrame, (val->toInt32(callFrame)) >> (shift->toUInt32(callFrame) & 0x1f));
     2006            JSValue* result = jsNumber(callFrame, (val->toInt32(callFrame)) >> (shift->toUInt32(callFrame) & 0x1f));
    20072007            VM_CHECK_EXCEPTION();
    20082008            callFrame[dst] = result;
     
    20202020        */
    20212021        int dst = (++vPC)->u.operand;
    2022         JSValuePtr val = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    2023         JSValuePtr shift = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     2022        JSValue* val = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     2023        JSValue* shift = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    20242024        if (JSImmediate::areBothImmediateNumbers(val, shift) && !JSImmediate::isNegative(val))
    20252025            callFrame[dst] = JSImmediate::rightShiftImmediateNumbers(val, shift);
    20262026        else {
    2027             JSValuePtr result = jsNumber(callFrame, (val->toUInt32(callFrame)) >> (shift->toUInt32(callFrame) & 0x1f));
     2027            JSValue* result = jsNumber(callFrame, (val->toUInt32(callFrame)) >> (shift->toUInt32(callFrame) & 0x1f));
    20282028            VM_CHECK_EXCEPTION();
    20292029            callFrame[dst] = result;
     
    20412041        */
    20422042        int dst = (++vPC)->u.operand;
    2043         JSValuePtr src1 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    2044         JSValuePtr src2 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     2043        JSValue* src1 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     2044        JSValue* src2 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    20452045        int32_t left;
    20462046        int32_t right;
     
    20502050            callFrame[dst] = jsNumber(callFrame, left & right);
    20512051        else {
    2052             JSValuePtr result = jsNumber(callFrame, src1->toInt32(callFrame) & src2->toInt32(callFrame));
     2052            JSValue* result = jsNumber(callFrame, src1->toInt32(callFrame) & src2->toInt32(callFrame));
    20532053            VM_CHECK_EXCEPTION();
    20542054            callFrame[dst] = result;
     
    20662066        */
    20672067        int dst = (++vPC)->u.operand;
    2068         JSValuePtr src1 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    2069         JSValuePtr src2 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     2068        JSValue* src1 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     2069        JSValue* src2 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    20702070        int32_t left;
    20712071        int32_t right;
     
    20752075            callFrame[dst] = jsNumber(callFrame, left ^ right);
    20762076        else {
    2077             JSValuePtr result = jsNumber(callFrame, src1->toInt32(callFrame) ^ src2->toInt32(callFrame));
     2077            JSValue* result = jsNumber(callFrame, src1->toInt32(callFrame) ^ src2->toInt32(callFrame));
    20782078            VM_CHECK_EXCEPTION();
    20792079            callFrame[dst] = result;
     
    20912091        */
    20922092        int dst = (++vPC)->u.operand;
    2093         JSValuePtr src1 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    2094         JSValuePtr src2 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     2093        JSValue* src1 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     2094        JSValue* src2 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    20952095        int32_t left;
    20962096        int32_t right;
     
    21002100            callFrame[dst] = jsNumber(callFrame, left | right);
    21012101        else {
    2102             JSValuePtr result = jsNumber(callFrame, src1->toInt32(callFrame) | src2->toInt32(callFrame));
     2102            JSValue* result = jsNumber(callFrame, src1->toInt32(callFrame) | src2->toInt32(callFrame));
    21032103            VM_CHECK_EXCEPTION();
    21042104            callFrame[dst] = result;
     
    21152115        */
    21162116        int dst = (++vPC)->u.operand;
    2117         JSValuePtr src = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     2117        JSValue* src = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    21182118        int32_t value;
    21192119        if (fastToInt32(src, value))
    21202120            callFrame[dst] = jsNumber(callFrame, ~value);
    21212121        else {
    2122             JSValuePtr result = jsNumber(callFrame, ~src->toInt32(callFrame));
     2122            JSValue* result = jsNumber(callFrame, ~src->toInt32(callFrame));
    21232123            VM_CHECK_EXCEPTION();
    21242124            callFrame[dst] = result;
     
    21352135        int dst = (++vPC)->u.operand;
    21362136        int src = (++vPC)->u.operand;
    2137         JSValuePtr result = jsBoolean(!callFrame[src].jsValue(callFrame)->toBoolean(callFrame));
     2137        JSValue* result = jsBoolean(!callFrame[src].jsValue(callFrame)->toBoolean(callFrame));
    21382138        VM_CHECK_EXCEPTION();
    21392139        callFrame[dst] = result;
     
    21602160        int baseProto = vPC[4].u.operand;
    21612161
    2162         JSValuePtr baseVal = callFrame[base].jsValue(callFrame);
     2162        JSValue* baseVal = callFrame[base].jsValue(callFrame);
    21632163
    21642164        if (isNotObject(callFrame, true, callFrame->codeBlock(), vPC, baseVal, exceptionValue))
     
    21932193        int dst = (++vPC)->u.operand;
    21942194        int src = (++vPC)->u.operand;
    2195         JSValuePtr v = callFrame[src].jsValue(callFrame);
     2195        JSValue* v = callFrame[src].jsValue(callFrame);
    21962196        callFrame[dst] = jsBoolean(JSImmediate::isImmediate(v) ? v->isUndefined() : v->asCell()->structureID()->typeInfo().masqueradesAsUndefined());
    21972197
     
    22822282        int base = (++vPC)->u.operand;
    22832283
    2284         JSValuePtr baseVal = callFrame[base].jsValue(callFrame);
     2284        JSValue* baseVal = callFrame[base].jsValue(callFrame);
    22852285        if (isNotObject(callFrame, false, callFrame->codeBlock(), vPC, baseVal, exceptionValue))
    22862286            goto vm_throw;
     
    22882288        JSObject* baseObj = asObject(baseVal);
    22892289
    2290         JSValuePtr propName = callFrame[property].jsValue(callFrame);
     2290        JSValue* propName = callFrame[property].jsValue(callFrame);
    22912291
    22922292        uint32_t i;
     
    24842484        CodeBlock* codeBlock = callFrame->codeBlock();
    24852485        Identifier& ident = codeBlock->identifiers[property];
    2486         JSValuePtr baseValue = callFrame[base].jsValue(callFrame);
     2486        JSValue* baseValue = callFrame[base].jsValue(callFrame);
    24872487        PropertySlot slot(baseValue);
    2488         JSValuePtr result = baseValue->get(callFrame, ident, slot);
     2488        JSValue* result = baseValue->get(callFrame, ident, slot);
    24892489        VM_CHECK_EXCEPTION();
    24902490
     
    25032503        */
    25042504        int base = vPC[2].u.operand;
    2505         JSValuePtr baseValue = callFrame[base].jsValue(callFrame);
     2505        JSValue* baseValue = callFrame[base].jsValue(callFrame);
    25062506
    25072507        if (LIKELY(!JSImmediate::isImmediate(baseValue))) {
     
    25342534        */
    25352535        int base = vPC[2].u.operand;
    2536         JSValuePtr baseValue = callFrame[base].jsValue(callFrame);
     2536        JSValue* baseValue = callFrame[base].jsValue(callFrame);
    25372537
    25382538        if (LIKELY(!JSImmediate::isImmediate(baseValue))) {
     
    25692569        */
    25702570        int base = vPC[2].u.operand;
    2571         JSValuePtr baseValue = callFrame[base].jsValue(callFrame);
     2571        JSValue* baseValue = callFrame[base].jsValue(callFrame);
    25722572
    25732573        if (LIKELY(!JSImmediate::isImmediate(baseValue))) {
     
    26142614
    26152615        Identifier& ident = callFrame->codeBlock()->identifiers[property];
    2616         JSValuePtr baseValue = callFrame[base].jsValue(callFrame);
     2616        JSValue* baseValue = callFrame[base].jsValue(callFrame);
    26172617        PropertySlot slot(baseValue);
    2618         JSValuePtr result = baseValue->get(callFrame, ident, slot);
     2618        JSValue* result = baseValue->get(callFrame, ident, slot);
    26192619        VM_CHECK_EXCEPTION();
    26202620
     
    26322632
    26332633        int base = vPC[2].u.operand;
    2634         JSValuePtr baseValue = callFrame[base].jsValue(callFrame);
     2634        JSValue* baseValue = callFrame[base].jsValue(callFrame);
    26352635        if (LIKELY(isJSArray(baseValue))) {
    26362636            int dst = vPC[1].u.operand;
     
    26522652
    26532653        int base = vPC[2].u.operand;
    2654         JSValuePtr baseValue = callFrame[base].jsValue(callFrame);
     2654        JSValue* baseValue = callFrame[base].jsValue(callFrame);
    26552655        if (LIKELY(isJSString(baseValue))) {
    26562656            int dst = vPC[1].u.operand;
     
    26782678
    26792679        CodeBlock* codeBlock = callFrame->codeBlock();
    2680         JSValuePtr baseValue = callFrame[base].jsValue(callFrame);
     2680        JSValue* baseValue = callFrame[base].jsValue(callFrame);
    26812681        Identifier& ident = codeBlock->identifiers[property];
    26822682        PutPropertySlot slot;
     
    27012701         */
    27022702        int base = vPC[1].u.operand;
    2703         JSValuePtr baseValue = callFrame[base].jsValue(callFrame);
     2703        JSValue* baseValue = callFrame[base].jsValue(callFrame);
    27042704       
    27052705        if (LIKELY(!JSImmediate::isImmediate(baseValue))) {
     
    27142714                RefPtr<StructureID>* it = vPC[6].u.structureIDChain->head();
    27152715
    2716                 JSValuePtr proto = baseObject->structureID()->prototypeForLookup(callFrame);
     2716                JSValue* proto = baseObject->structureID()->prototypeForLookup(callFrame);
    27172717                while (!proto->isNull()) {
    27182718                    if (UNLIKELY(asObject(proto)->structureID() != (*it).get())) {
     
    27512751        */
    27522752        int base = vPC[1].u.operand;
    2753         JSValuePtr baseValue = callFrame[base].jsValue(callFrame);
     2753        JSValue* baseValue = callFrame[base].jsValue(callFrame);
    27542754
    27552755        if (LIKELY(!JSImmediate::isImmediate(baseValue))) {
     
    27872787        int value = vPC[3].u.operand;
    27882788
    2789         JSValuePtr baseValue = callFrame[base].jsValue(callFrame);
     2789        JSValue* baseValue = callFrame[base].jsValue(callFrame);
    27902790        Identifier& ident = callFrame->codeBlock()->identifiers[property];
    27912791        PutPropertySlot slot;
     
    28102810        JSObject* baseObj = callFrame[base].jsValue(callFrame)->toObject(callFrame);
    28112811        Identifier& ident = callFrame->codeBlock()->identifiers[property];
    2812         JSValuePtr result = jsBoolean(baseObj->deleteProperty(callFrame, ident));
     2812        JSValue* result = jsBoolean(baseObj->deleteProperty(callFrame, ident));
    28132813        VM_CHECK_EXCEPTION();
    28142814        callFrame[dst] = result;
     
    28282828        int property = (++vPC)->u.operand;
    28292829       
    2830         JSValuePtr baseValue = callFrame[base].jsValue(callFrame);
    2831         JSValuePtr subscript = callFrame[property].jsValue(callFrame);
    2832 
    2833         JSValuePtr result;
     2830        JSValue* baseValue = callFrame[base].jsValue(callFrame);
     2831        JSValue* subscript = callFrame[property].jsValue(callFrame);
     2832
     2833        JSValue* result;
    28342834        unsigned i;
    28352835
     
    28712871        int value = (++vPC)->u.operand;
    28722872
    2873         JSValuePtr baseValue = callFrame[base].jsValue(callFrame);
    2874         JSValuePtr subscript = callFrame[property].jsValue(callFrame);
     2873        JSValue* baseValue = callFrame[base].jsValue(callFrame);
     2874        JSValue* subscript = callFrame[property].jsValue(callFrame);
    28752875
    28762876        unsigned i;
     
    29122912        JSObject* baseObj = callFrame[base].jsValue(callFrame)->toObject(callFrame); // may throw
    29132913
    2914         JSValuePtr subscript = callFrame[property].jsValue(callFrame);
    2915         JSValuePtr result;
     2914        JSValue* subscript = callFrame[property].jsValue(callFrame);
     2915        JSValue* result;
    29162916        uint32_t i;
    29172917        if (subscript->getUInt32(i))
     
    30413041        int src = (++vPC)->u.operand;
    30423042        int target = (++vPC)->u.operand;
    3043         JSValuePtr srcValue = callFrame[src].jsValue(callFrame);
     3043        JSValue* srcValue = callFrame[src].jsValue(callFrame);
    30443044
    30453045        if (srcValue->isUndefinedOrNull() || (!JSImmediate::isImmediate(srcValue) && srcValue->asCell()->structureID()->typeInfo().masqueradesAsUndefined())) {
     
    30593059        int src = (++vPC)->u.operand;
    30603060        int target = (++vPC)->u.operand;
    3061         JSValuePtr srcValue = callFrame[src].jsValue(callFrame);
     3061        JSValue* srcValue = callFrame[src].jsValue(callFrame);
    30623062
    30633063        if (!srcValue->isUndefinedOrNull() || (!JSImmediate::isImmediate(srcValue) && !srcValue->asCell()->structureID()->typeInfo().masqueradesAsUndefined())) {
     
    30803080           the JS timeout is reached.
    30813081         */
    3082         JSValuePtr src1 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    3083         JSValuePtr src2 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     3082        JSValue* src1 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     3083        JSValue* src2 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    30843084        int target = (++vPC)->u.operand;
    30853085       
     
    31073107           the JS timeout is reached.
    31083108        */
    3109         JSValuePtr src1 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    3110         JSValuePtr src2 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     3109        JSValue* src1 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     3110        JSValue* src2 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    31113111        int target = (++vPC)->u.operand;
    31123112       
     
    31313131           result of the comparison is false.
    31323132        */
    3133         JSValuePtr src1 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    3134         JSValuePtr src2 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     3133        JSValue* src1 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     3134        JSValue* src2 = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    31353135        int target = (++vPC)->u.operand;
    31363136
     
    31573157        int tableIndex = (++vPC)->u.operand;
    31583158        int defaultOffset = (++vPC)->u.operand;
    3159         JSValuePtr scrutinee = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     3159        JSValue* scrutinee = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    31603160        if (!JSImmediate::isNumber(scrutinee))
    31613161            vPC += defaultOffset;
     
    31773177        int tableIndex = (++vPC)->u.operand;
    31783178        int defaultOffset = (++vPC)->u.operand;
    3179         JSValuePtr scrutinee = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     3179        JSValue* scrutinee = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    31803180        if (!scrutinee->isString())
    31813181            vPC += defaultOffset;
     
    32003200        int tableIndex = (++vPC)->u.operand;
    32013201        int defaultOffset = (++vPC)->u.operand;
    3202         JSValuePtr scrutinee = callFrame[(++vPC)->u.operand].jsValue(callFrame);
     3202        JSValue* scrutinee = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    32033203        if (!scrutinee->isString())
    32043204            vPC += defaultOffset;
     
    32573257        int argCount = vPC[5].u.operand;
    32583258
    3259         JSValuePtr funcVal = callFrame[func].jsValue(callFrame);
    3260         JSValuePtr baseVal = callFrame[thisVal].jsValue(callFrame);
     3259        JSValue* funcVal = callFrame[func].jsValue(callFrame);
     3260        JSValue* baseVal = callFrame[thisVal].jsValue(callFrame);
    32613261
    32623262        ScopeChainNode* scopeChain = callFrame->scopeChain();
    32633263        if (baseVal == scopeChain->globalObject() && funcVal == scopeChain->globalObject()->evalFunction()) {
    32643264            JSObject* thisObject = asObject(callFrame[callFrame->codeBlock()->thisRegister].jsValue(callFrame));
    3265             JSValuePtr result = callEval(callFrame, thisObject, scopeChain, registerFile, firstArg, argCount, exceptionValue);
     3265            JSValue* result = callEval(callFrame, thisObject, scopeChain, registerFile, firstArg, argCount, exceptionValue);
    32663266            if (exceptionValue)
    32673267                goto vm_throw;
     
    33303330        int registerOffset = vPC[6].u.operand;
    33313331
    3332         JSValuePtr v = callFrame[func].jsValue(callFrame);
     3332        JSValue* v = callFrame[func].jsValue(callFrame);
    33333333
    33343334        CallData callData;
     
    33623362
    33633363        if (callType == CallTypeHost) {
    3364             JSValuePtr thisValue = thisVal == missingThisObjectMarker() ? callFrame->globalThisValue() : callFrame[thisVal].jsValue(callFrame);
     3364            JSValue* thisValue = thisVal == missingThisObjectMarker() ? callFrame->globalThisValue() : callFrame[thisVal].jsValue(callFrame);
    33653365            ArgList args(callFrame->registers() + firstArg + 1, argCount - 1);
    33663366
     
    33713371            MACHINE_SAMPLING_callingHostFunction();
    33723372
    3373             JSValuePtr returnValue = callData.native.function(newCallFrame, asObject(v), thisValue, args);
     3373            JSValue* returnValue = callData.native.function(newCallFrame, asObject(v), thisValue, args);
    33743374            VM_CHECK_EXCEPTION();
    33753375
     
    34413441            callFrame->scopeChain()->deref();
    34423442
    3443         JSValuePtr returnValue = callFrame[result].jsValue(callFrame);
     3443        JSValue* returnValue = callFrame[result].jsValue(callFrame);
    34443444
    34453445        vPC = callFrame->returnPC();
     
    35203520
    35213521        int thisRegister = (++vPC)->u.operand;
    3522         JSValuePtr thisVal = callFrame[thisRegister].getJSValue();
     3522        JSValue* thisVal = callFrame[thisRegister].getJSValue();
    35233523        if (thisVal->needsThisConversion())
    35243524            callFrame[thisRegister] = thisVal->toThisObject(callFrame);
     
    35673567        int registerOffset = vPC[6].u.operand;
    35683568
    3569         JSValuePtr v = callFrame[constr].jsValue(callFrame);
     3569        JSValue* v = callFrame[constr].jsValue(callFrame);
    35703570
    35713571        ConstructData constructData;
     
    35783578
    35793579            StructureID* structure;
    3580             JSValuePtr prototype = callFrame[constrProto].jsValue(callFrame);
     3580            JSValue* prototype = callFrame[constrProto].jsValue(callFrame);
    35813581            if (prototype->isObject())
    35823582                structure = asObject(prototype)->inheritorID();
     
    36153615            MACHINE_SAMPLING_callingHostFunction();
    36163616
    3617             JSValuePtr returnValue = constructData.native.function(newCallFrame, asObject(v), args);
     3617            JSValue* returnValue = constructData.native.function(newCallFrame, asObject(v), args);
    36183618
    36193619            VM_CHECK_EXCEPTION();
     
    36553655        */
    36563656        int scope = (++vPC)->u.operand;
    3657         JSValuePtr v = callFrame[scope].jsValue(callFrame);
     3657        JSValue* v = callFrame[scope].jsValue(callFrame);
    36583658        JSObject* o = v->toObject(callFrame);
    36593659        VM_CHECK_EXCEPTION();
     
    37033703
    37043704        JSPropertyNameIterator* it = callFrame[iter].propertyNameIterator();
    3705         if (JSValuePtr temp = it->next(callFrame)) {
     3705        if (JSValue* temp = it->next(callFrame)) {
    37063706            CHECK_FOR_TIMEOUT();
    37073707            callFrame[dst] = temp;
     
    39843984}
    39853985
    3986 JSValuePtr Machine::retrieveArguments(CallFrame* callFrame, JSFunction* function) const
     3986JSValue* Machine::retrieveArguments(CallFrame* callFrame, JSFunction* function) const
    39873987{
    39883988    CallFrame* functionCallFrame = findFunctionCallFrame(callFrame, function);
     
    40084008}
    40094009
    4010 JSValuePtr Machine::retrieveCaller(CallFrame* callFrame, InternalFunction* function) const
     4010JSValue* Machine::retrieveCaller(CallFrame* callFrame, InternalFunction* function) const
    40114011{
    40124012    CallFrame* functionCallFrame = findFunctionCallFrame(callFrame, function);
     
    40184018        return jsNull();
    40194019
    4020     JSValuePtr caller = callerFrame->callee();
     4020    JSValue* caller = callerFrame->callee();
    40214021    if (!caller)
    40224022        return jsNull();
     
    40254025}
    40264026
    4027 void Machine::retrieveLastCaller(CallFrame* callFrame, int& lineNumber, intptr_t& sourceID, UString& sourceURL, JSValuePtr& function) const
     4027void Machine::retrieveLastCaller(CallFrame* callFrame, int& lineNumber, intptr_t& sourceID, UString& sourceURL, JSValue*& function) const
    40284028{
    40294029    function = noValue();
     
    40574057#if ENABLE(CTI)
    40584058
    4059 NEVER_INLINE void Machine::tryCTICachePutByID(CallFrame* callFrame, CodeBlock* codeBlock, void* returnAddress, JSValuePtr baseValue, const PutPropertySlot& slot)
     4059NEVER_INLINE void Machine::tryCTICachePutByID(CallFrame* callFrame, CodeBlock* codeBlock, void* returnAddress, JSValue* baseValue, const PutPropertySlot& slot)
    40604060{
    40614061    // The interpreter checks for recursion here; I do not believe this can occur in CTI.
     
    41424142}
    41434143
    4144 NEVER_INLINE void Machine::tryCTICacheGetByID(CallFrame* callFrame, CodeBlock* codeBlock, void* returnAddress, JSValuePtr baseValue, const Identifier& propertyName, const PropertySlot& slot)
     4144NEVER_INLINE void Machine::tryCTICacheGetByID(CallFrame* callFrame, CodeBlock* codeBlock, void* returnAddress, JSValue* baseValue, const Identifier& propertyName, const PropertySlot& slot)
    41454145{
    41464146    // FIXME: Write a test that proves we need to check for recursion here just
     
    42314231    JSObject* o = asObject(baseValue);
    42324232    while (slot.slotBase() != o) {
    4233         JSValuePtr v = o->structureID()->prototypeForLookup(callFrame);
     4233        JSValue* v = o->structureID()->prototypeForLookup(callFrame);
    42344234
    42354235        // If we didn't find slotBase in baseValue's prototype chain, then baseValue
     
    43574357    CTI_STACK_HACK();
    43584358
    4359     JSValuePtr v1 = ARG_src1;
     4359    JSValue* v1 = ARG_src1;
    43604360    CallFrame* callFrame = ARG_callFrame;
    43614361
     
    43784378    CTI_STACK_HACK();
    43794379
    4380     JSValuePtr v1 = ARG_src1;
    4381     JSValuePtr v2 = ARG_src2;
     4380    JSValue* v1 = ARG_src1;
     4381    JSValue* v2 = ARG_src2;
    43824382
    43834383    double left;
     
    43984398        }
    43994399
    4400         return JSValuePtr(jsString(ARG_globalData, value.release()));
     4400        return jsString(ARG_globalData, value.release());
    44014401    }
    44024402
     
    44104410            VM_THROW_EXCEPTION();
    44114411        }
    4412         return JSValuePtr(jsString(ARG_globalData, value.release()));
     4412        return jsString(ARG_globalData, value.release());
    44134413    }
    44144414
    44154415    // All other cases are pretty uncommon
    4416     JSValuePtr result = jsAddSlowCase(callFrame, v1, v2);
     4416    JSValue* result = jsAddSlowCase(callFrame, v1, v2);
    44174417    VM_CHECK_EXCEPTION_AT_END();
    44184418    return result;
     
    44234423    CTI_STACK_HACK();
    44244424
    4425     JSValuePtr v = ARG_src1;
    4426 
    4427     CallFrame* callFrame = ARG_callFrame;
    4428     JSValuePtr result = jsNumber(ARG_globalData, v->toNumber(callFrame) + 1);
     4425    JSValue* v = ARG_src1;
     4426
     4427    CallFrame* callFrame = ARG_callFrame;
     4428    JSValue* result = jsNumber(ARG_globalData, v->toNumber(callFrame) + 1);
    44294429    VM_CHECK_EXCEPTION_AT_END();
    44304430    return result;
     
    44634463    CTI_STACK_HACK();
    44644464
    4465     JSValuePtr src1 = ARG_src1;
    4466     JSValuePtr src2 = ARG_src2;
     4465    JSValue* src1 = ARG_src1;
     4466    JSValue* src2 = ARG_src2;
    44674467    CallFrame* callFrame = ARG_callFrame;
    44684468
     
    44764476    CTI_STACK_HACK();
    44774477
    4478     JSValuePtr src1 = ARG_src1;
    4479     JSValuePtr src2 = ARG_src2;
     4478    JSValue* src1 = ARG_src1;
     4479    JSValue* src2 = ARG_src2;
    44804480    CallFrame* callFrame = ARG_callFrame;
    44814481
     
    45494549    Identifier& ident = *ARG_id2;
    45504550
    4551     JSValuePtr baseValue = ARG_src1;
     4551    JSValue* baseValue = ARG_src1;
    45524552    PropertySlot slot(baseValue);
    4553     JSValuePtr result = baseValue->get(callFrame, ident, slot);
     4553    JSValue* result = baseValue->get(callFrame, ident, slot);
    45544554
    45554555    ctiRepatchCallByReturnAddress(CTI_RETURN_ADDRESS, reinterpret_cast<void*>(cti_op_get_by_id_second));
     
    45664566    Identifier& ident = *ARG_id2;
    45674567
    4568     JSValuePtr baseValue = ARG_src1;
     4568    JSValue* baseValue = ARG_src1;
    45694569    PropertySlot slot(baseValue);
    4570     JSValuePtr result = baseValue->get(callFrame, ident, slot);
     4570    JSValue* result = baseValue->get(callFrame, ident, slot);
    45714571
    45724572    ARG_globalData->machine->tryCTICacheGetByID(callFrame, callFrame->codeBlock(), CTI_RETURN_ADDRESS, baseValue, ident, slot);
     
    45834583    Identifier& ident = *ARG_id2;
    45844584
    4585     JSValuePtr baseValue = ARG_src1;
     4585    JSValue* baseValue = ARG_src1;
    45864586    PropertySlot slot(baseValue);
    4587     JSValuePtr result = baseValue->get(callFrame, ident, slot);
     4587    JSValue* result = baseValue->get(callFrame, ident, slot);
    45884588
    45894589    VM_CHECK_EXCEPTION_AT_END();
     
    45984598    Identifier& ident = *ARG_id2;
    45994599
    4600     JSValuePtr baseValue = ARG_src1;
     4600    JSValue* baseValue = ARG_src1;
    46014601    PropertySlot slot(baseValue);
    4602     JSValuePtr result = baseValue->get(callFrame, ident, slot);
     4602    JSValue* result = baseValue->get(callFrame, ident, slot);
    46034603
    46044604    // should probably uncacheGetByID() ... this would mean doing a vPC lookup - might be worth just bleeding this until the end.
     
    46144614
    46154615    CallFrame* callFrame = ARG_callFrame;
    4616     JSValuePtr value = ARG_src1;
    4617     JSValuePtr baseVal = ARG_src2;
    4618     JSValuePtr proto = ARG_src3;
     4616    JSValue* value = ARG_src1;
     4617    JSValue* baseVal = ARG_src2;
     4618    JSValue* proto = ARG_src3;
    46194619
    46204620    // at least one of these checks must have failed to get to the slow case
     
    46334633
    46344634    if (!asObject(baseVal)->structureID()->typeInfo().implementsHasInstance())
    4635         return JSValuePtr(jsBoolean(false));
     4635        return jsBoolean(false);
    46364636
    46374637    if (!proto->isObject()) {
     
    46414641       
    46424642    if (!value->isObject())
    4643         return JSValuePtr(jsBoolean(false));
    4644 
    4645     JSValuePtr result = jsBoolean(asObject(baseVal)->hasInstance(callFrame, value, proto));
     4643        return jsBoolean(false);
     4644
     4645    JSValue* result = jsBoolean(asObject(baseVal)->hasInstance(callFrame, value, proto));
    46464646    VM_CHECK_EXCEPTION_AT_END();
    46474647
     
    46584658    JSObject* baseObj = ARG_src1->toObject(callFrame);
    46594659
    4660     JSValuePtr result = jsBoolean(baseObj->deleteProperty(callFrame, ident));
     4660    JSValue* result = jsBoolean(baseObj->deleteProperty(callFrame, ident));
    46614661    VM_CHECK_EXCEPTION_AT_END();
    46624662    return result;
     
    46674667    CTI_STACK_HACK();
    46684668
    4669     JSValuePtr src1 = ARG_src1;
    4670     JSValuePtr src2 = ARG_src2;
     4669    JSValue* src1 = ARG_src1;
     4670    JSValue* src2 = ARG_src2;
    46714671
    46724672    double left;
     
    46764676
    46774677    CallFrame* callFrame = ARG_callFrame;
    4678     JSValuePtr result = jsNumber(ARG_globalData, src1->toNumber(callFrame) * src2->toNumber(callFrame));
     4678    JSValue* result = jsNumber(ARG_globalData, src1->toNumber(callFrame) * src2->toNumber(callFrame));
    46794679    VM_CHECK_EXCEPTION_AT_END();
    46804680    return result;
     
    47764776    CTI_STACK_HACK();
    47774777
    4778     JSValuePtr funcVal = ARG_src1;
     4778    JSValue* funcVal = ARG_src1;
    47794779
    47804780    CallData callData;
     
    47974797        CTI_MACHINE_SAMPLING_callingHostFunction();
    47984798
    4799         JSValuePtr returnValue = callData.native.function(callFrame, asObject(funcVal), argv[0].jsValue(callFrame), argList);
     4799        JSValue* returnValue = callData.native.function(callFrame, asObject(funcVal), argv[0].jsValue(callFrame), argList);
    48004800        ARG_setCallFrame(previousCallFrame);
    48014801        VM_CHECK_EXCEPTION();
     
    48924892        PropertySlot slot(o);
    48934893        if (o->getPropertySlot(callFrame, ident, slot)) {
    4894             JSValuePtr result = slot.getValue(callFrame, ident);
     4894            JSValue* result = slot.getValue(callFrame, ident);
    48954895            VM_CHECK_EXCEPTION_AT_END();
    48964896            return result;
     
    49314931    int registerOffset = ARG_int2;
    49324932    int argCount = ARG_int3;
    4933     JSValuePtr constrProtoVal = ARG_src5;
     4933    JSValue* constrProtoVal = ARG_src5;
    49344934    int firstArg = ARG_int6;
    49354935
     
    49904990    CallFrame* callFrame = ARG_callFrame;
    49914991
    4992     JSValuePtr constrVal = ARG_src1;
     4992    JSValue* constrVal = ARG_src1;
    49934993    int argCount = ARG_int3;
    49944994    int firstArg = ARG_int6;
     
    50025002        CTI_MACHINE_SAMPLING_callingHostFunction();
    50035003
    5004         JSValuePtr returnValue = constructData.native.function(callFrame, asObject(constrVal), argList);
     5004        JSValue* returnValue = constructData.native.function(callFrame, asObject(constrVal), argList);
    50055005        VM_CHECK_EXCEPTION();
    50065006
     
    50215021    Machine* machine = ARG_globalData->machine;
    50225022
    5023     JSValuePtr baseValue = ARG_src1;
    5024     JSValuePtr subscript = ARG_src2;
    5025 
    5026     JSValuePtr result;
     5023    JSValue* baseValue = ARG_src1;
     5024    JSValue* subscript = ARG_src2;
     5025
     5026    JSValue* result;
    50275027    unsigned i;
    50285028
     
    50765076            // We also handle wrapper substitution for the global object at the same time.
    50775077            JSObject* thisObj = base->toThisObject(callFrame);
    5078             JSValuePtr result = slot.getValue(callFrame, ident);
     5078            JSValue* result = slot.getValue(callFrame, ident);
    50795079            VM_CHECK_EXCEPTION_AT_END();
    50805080
     
    50965096    CTI_STACK_HACK();
    50975097
    5098     JSValuePtr src1 = ARG_src1;
    5099     JSValuePtr src2 = ARG_src2;
     5098    JSValue* src1 = ARG_src1;
     5099    JSValue* src2 = ARG_src2;
    51005100
    51015101    double left;
     
    51055105
    51065106    CallFrame* callFrame = ARG_callFrame;
    5107     JSValuePtr result = jsNumber(ARG_globalData, src1->toNumber(callFrame) - src2->toNumber(callFrame));
     5107    JSValue* result = jsNumber(ARG_globalData, src1->toNumber(callFrame) - src2->toNumber(callFrame));
    51085108    VM_CHECK_EXCEPTION_AT_END();
    51095109    return result;
     
    51175117    Machine* machine = ARG_globalData->machine;
    51185118
    5119     JSValuePtr baseValue = ARG_src1;
    5120     JSValuePtr subscript = ARG_src2;
    5121     JSValuePtr value = ARG_src3;
     5119    JSValue* baseValue = ARG_src1;
     5120    JSValue* subscript = ARG_src2;
     5121    JSValue* value = ARG_src3;
    51225122
    51235123    unsigned i;
     
    51505150    CallFrame* callFrame = ARG_callFrame;
    51515151
    5152     JSValuePtr baseValue = ARG_src1;
     5152    JSValue* baseValue = ARG_src1;
    51535153    int i = ARG_int2;
    5154     JSValuePtr value = ARG_src3;
     5154    JSValue* value = ARG_src3;
    51555155
    51565156    ASSERT(ARG_globalData->machine->isJSArray(baseValue));
     
    51755175
    51765176    CallFrame* callFrame = ARG_callFrame;
    5177     JSValuePtr result = jsBoolean(jsLessEq(callFrame, ARG_src1, ARG_src2));
     5177    JSValue* result = jsBoolean(jsLessEq(callFrame, ARG_src1, ARG_src2));
    51785178    VM_CHECK_EXCEPTION_AT_END();
    51795179    return result;
     
    51845184    CTI_STACK_HACK();
    51855185
    5186     JSValuePtr src1 = ARG_src1;
     5186    JSValue* src1 = ARG_src1;
    51875187
    51885188    CallFrame* callFrame = ARG_callFrame;
     
    51975197    CTI_STACK_HACK();
    51985198
    5199     JSValuePtr src = ARG_src1;
     5199    JSValue* src = ARG_src1;
    52005200
    52015201    double v;
     
    52045204
    52055205    CallFrame* callFrame = ARG_callFrame;
    5206     JSValuePtr result = jsNumber(ARG_globalData, -src->toNumber(callFrame));
     5206    JSValue* result = jsNumber(ARG_globalData, -src->toNumber(callFrame));
    52075207    VM_CHECK_EXCEPTION_AT_END();
    52085208    return result;
     
    52375237        PropertySlot slot(o);
    52385238        if (o->getPropertySlot(callFrame, ident, slot)) {
    5239             JSValuePtr result = slot.getValue(callFrame, ident);
     5239            JSValue* result = slot.getValue(callFrame, ident);
    52405240            VM_CHECK_EXCEPTION_AT_END();
    52415241            return result;
     
    52625262    PropertySlot slot(globalObject);
    52635263    if (globalObject->getPropertySlot(callFrame, ident, slot)) {
    5264         JSValuePtr result = slot.getValue(callFrame, ident);
     5264        JSValue* result = slot.getValue(callFrame, ident);
    52655265        if (slot.isCacheable()) {
    52665266            if (vPC[4].u.structureID)
     
    52845284    CTI_STACK_HACK();
    52855285
    5286     JSValuePtr src1 = ARG_src1;
    5287     JSValuePtr src2 = ARG_src2;
     5286    JSValue* src1 = ARG_src1;
     5287    JSValue* src2 = ARG_src2;
    52885288
    52895289    double left;
     
    52935293
    52945294    CallFrame* callFrame = ARG_callFrame;
    5295     JSValuePtr result = jsNumber(ARG_globalData, src1->toNumber(callFrame) / src2->toNumber(callFrame));
     5295    JSValue* result = jsNumber(ARG_globalData, src1->toNumber(callFrame) / src2->toNumber(callFrame));
    52965296    VM_CHECK_EXCEPTION_AT_END();
    52975297    return result;
     
    53025302    CTI_STACK_HACK();
    53035303
    5304     JSValuePtr v = ARG_src1;
    5305 
    5306     CallFrame* callFrame = ARG_callFrame;
    5307     JSValuePtr result = jsNumber(ARG_globalData, v->toNumber(callFrame) - 1);
     5304    JSValue* v = ARG_src1;
     5305
     5306    CallFrame* callFrame = ARG_callFrame;
     5307    JSValue* result = jsNumber(ARG_globalData, v->toNumber(callFrame) - 1);
    53085308    VM_CHECK_EXCEPTION_AT_END();
    53095309    return result;
     
    53145314    CTI_STACK_HACK();
    53155315
    5316     JSValuePtr src1 = ARG_src1;
    5317     JSValuePtr src2 = ARG_src2;
     5316    JSValue* src1 = ARG_src1;
     5317    JSValue* src2 = ARG_src2;
    53185318    CallFrame* callFrame = ARG_callFrame;
    53195319
     
    53275327    CTI_STACK_HACK();
    53285328
    5329     JSValuePtr src = ARG_src1;
    5330 
    5331     CallFrame* callFrame = ARG_callFrame;
    5332 
    5333     JSValuePtr result = jsBoolean(!src->toBoolean(callFrame));
     5329    JSValue* src = ARG_src1;
     5330
     5331    CallFrame* callFrame = ARG_callFrame;
     5332
     5333    JSValue* result = jsBoolean(!src->toBoolean(callFrame));
    53345334    VM_CHECK_EXCEPTION_AT_END();
    53355335    return result;
     
    53405340    CTI_STACK_HACK();
    53415341
    5342     JSValuePtr src1 = ARG_src1;
     5342    JSValue* src1 = ARG_src1;
    53435343
    53445344    CallFrame* callFrame = ARG_callFrame;
     
    53535353    CTI_STACK_HACK();
    53545354
    5355     JSValuePtr v = ARG_src1;
    5356 
    5357     CallFrame* callFrame = ARG_callFrame;
    5358 
    5359     JSValuePtr number = v->toJSNumber(callFrame);
     5355    JSValue* v = ARG_src1;
     5356
     5357    CallFrame* callFrame = ARG_callFrame;
     5358
     5359    JSValue* number = v->toJSNumber(callFrame);
    53605360    VM_CHECK_EXCEPTION_AT_END();
    53615361
     
    53685368    CTI_STACK_HACK();
    53695369
    5370     JSValuePtr src1 = ARG_src1;
    5371     JSValuePtr src2 = ARG_src2;
     5370    JSValue* src1 = ARG_src1;
     5371    JSValue* src2 = ARG_src2;
    53725372
    53735373    CallFrame* callFrame = ARG_callFrame;
    53745374
    53755375    ASSERT(!JSImmediate::areBothImmediateNumbers(src1, src2));
    5376     JSValuePtr result = jsBoolean(equalSlowCaseInline(callFrame, src1, src2));
     5376    JSValue* result = jsBoolean(equalSlowCaseInline(callFrame, src1, src2));
    53775377    VM_CHECK_EXCEPTION_AT_END();
    53785378    return result;
     
    53835383    CTI_STACK_HACK();
    53845384
    5385     JSValuePtr val = ARG_src1;
    5386     JSValuePtr shift = ARG_src2;
     5385    JSValue* val = ARG_src1;
     5386    JSValue* shift = ARG_src2;
    53875387
    53885388    int32_t left;
     
    53945394
    53955395    CallFrame* callFrame = ARG_callFrame;
    5396     JSValuePtr result = jsNumber(ARG_globalData, (val->toInt32(callFrame)) << (shift->toUInt32(callFrame) & 0x1f));
     5396    JSValue* result = jsNumber(ARG_globalData, (val->toInt32(callFrame)) << (shift->toUInt32(callFrame) & 0x1f));
    53975397    VM_CHECK_EXCEPTION_AT_END();
    53985398    return result;
     
    54035403    CTI_STACK_HACK();
    54045404
    5405     JSValuePtr src1 = ARG_src1;
    5406     JSValuePtr src2 = ARG_src2;
     5405    JSValue* src1 = ARG_src1;
     5406    JSValue* src2 = ARG_src2;
    54075407
    54085408    int32_t left;
     
    54125412
    54135413    CallFrame* callFrame = ARG_callFrame;
    5414     JSValuePtr result = jsNumber(ARG_globalData, src1->toInt32(callFrame) & src2->toInt32(callFrame));
     5414    JSValue* result = jsNumber(ARG_globalData, src1->toInt32(callFrame) & src2->toInt32(callFrame));
    54155415    VM_CHECK_EXCEPTION_AT_END();
    54165416    return result;
     
    54215421    CTI_STACK_HACK();
    54225422
    5423     JSValuePtr val = ARG_src1;
    5424     JSValuePtr shift = ARG_src2;
     5423    JSValue* val = ARG_src1;
     5424    JSValue* shift = ARG_src2;
    54255425
    54265426    int32_t left;
     
    54325432
    54335433    CallFrame* callFrame = ARG_callFrame;
    5434     JSValuePtr result = jsNumber(ARG_globalData, (val->toInt32(callFrame)) >> (shift->toUInt32(callFrame) & 0x1f));
     5434    JSValue* result = jsNumber(ARG_globalData, (val->toInt32(callFrame)) >> (shift->toUInt32(callFrame) & 0x1f));
    54355435    VM_CHECK_EXCEPTION_AT_END();
    54365436    return result;
     
    54415441    CTI_STACK_HACK();
    54425442
    5443     JSValuePtr src = ARG_src1;
     5443    JSValue* src = ARG_src1;
    54445444
    54455445    int value;
     
    54485448           
    54495449    CallFrame* callFrame = ARG_callFrame;
    5450     JSValuePtr result = jsNumber(ARG_globalData, ~src->toInt32(callFrame));
     5450    JSValue* result = jsNumber(ARG_globalData, ~src->toInt32(callFrame));
    54515451    VM_CHECK_EXCEPTION_AT_END();
    54525452    return result;
     
    54735473        PropertySlot slot(base);
    54745474        if (base->getPropertySlot(callFrame, ident, slot)) {
    5475             JSValuePtr result = slot.getValue(callFrame, ident);
     5475            JSValue* result = slot.getValue(callFrame, ident);
    54765476            VM_CHECK_EXCEPTION_AT_END();
    54775477
     
    55005500    CTI_STACK_HACK();
    55015501
    5502     JSValuePtr dividendValue = ARG_src1;
    5503     JSValuePtr divisorValue = ARG_src2;
     5502    JSValue* dividendValue = ARG_src1;
     5503    JSValue* divisorValue = ARG_src2;
    55045504
    55055505    CallFrame* callFrame = ARG_callFrame;
    55065506    double d = dividendValue->toNumber(callFrame);
    5507     JSValuePtr result = jsNumber(ARG_globalData, fmod(d, divisorValue->toNumber(callFrame)));
     5507    JSValue* result = jsNumber(ARG_globalData, fmod(d, divisorValue->toNumber(callFrame)));
    55085508    VM_CHECK_EXCEPTION_AT_END();
    55095509    return result;
     
    55155515
    55165516    CallFrame* callFrame = ARG_callFrame;
    5517     JSValuePtr result = jsBoolean(jsLess(callFrame, ARG_src1, ARG_src2));
     5517    JSValue* result = jsBoolean(jsLess(callFrame, ARG_src1, ARG_src2));
    55185518    VM_CHECK_EXCEPTION_AT_END();
    55195519    return result;
     
    55245524    CTI_STACK_HACK();
    55255525
    5526     JSValuePtr src1 = ARG_src1;
    5527     JSValuePtr src2 = ARG_src2;
     5526    JSValue* src1 = ARG_src1;
     5527    JSValue* src2 = ARG_src2;
    55285528
    55295529    ASSERT(!JSImmediate::areBothImmediateNumbers(src1, src2));
    55305530
    55315531    CallFrame* callFrame = ARG_callFrame;
    5532     JSValuePtr result = jsBoolean(!equalSlowCaseInline(callFrame, src1, src2));
     5532    JSValue* result = jsBoolean(!equalSlowCaseInline(callFrame, src1, src2));
    55335533    VM_CHECK_EXCEPTION_AT_END();
    55345534    return result;
     
    55395539    CTI_STACK_HACK();
    55405540
    5541     JSValuePtr v = ARG_src1;
    5542 
    5543     CallFrame* callFrame = ARG_callFrame;
    5544 
    5545     JSValuePtr number = v->toJSNumber(callFrame);
     5541    JSValue* v = ARG_src1;
     5542
     5543    CallFrame* callFrame = ARG_callFrame;
     5544
     5545    JSValue* number = v->toJSNumber(callFrame);
    55465546    VM_CHECK_EXCEPTION_AT_END();
    55475547
     
    55545554    CTI_STACK_HACK();
    55555555
    5556     JSValuePtr val = ARG_src1;
    5557     JSValuePtr shift = ARG_src2;
     5556    JSValue* val = ARG_src1;
     5557    JSValue* shift = ARG_src2;
    55585558
    55595559    CallFrame* callFrame = ARG_callFrame;
     
    55625562        return JSImmediate::rightShiftImmediateNumbers(val, shift);
    55635563    else {
    5564         JSValuePtr result = jsNumber(ARG_globalData, (val->toUInt32(callFrame)) >> (shift->toUInt32(callFrame) & 0x1f));
     5564        JSValue* result = jsNumber(ARG_globalData, (val->toUInt32(callFrame)) >> (shift->toUInt32(callFrame) & 0x1f));
    55655565        VM_CHECK_EXCEPTION_AT_END();
    55665566        return result;
     
    55725572    CTI_STACK_HACK();
    55735573
    5574     JSValuePtr src1 = ARG_src1;
    5575     JSValuePtr src2 = ARG_src2;
    5576 
    5577     CallFrame* callFrame = ARG_callFrame;
    5578 
    5579     JSValuePtr result = jsNumber(ARG_globalData, src1->toInt32(callFrame) ^ src2->toInt32(callFrame));
     5574    JSValue* src1 = ARG_src1;
     5575    JSValue* src2 = ARG_src2;
     5576
     5577    CallFrame* callFrame = ARG_callFrame;
     5578
     5579    JSValue* result = jsNumber(ARG_globalData, src1->toInt32(callFrame) ^ src2->toInt32(callFrame));
    55805580    VM_CHECK_EXCEPTION_AT_END();
    55815581    return result;
     
    55935593    CTI_STACK_HACK();
    55945594
    5595     JSValuePtr src1 = ARG_src1;
    5596     JSValuePtr src2 = ARG_src2;
    5597 
    5598     CallFrame* callFrame = ARG_callFrame;
    5599 
    5600     JSValuePtr result = jsNumber(ARG_globalData, src1->toInt32(callFrame) | src2->toInt32(callFrame));
     5595    JSValue* src1 = ARG_src1;
     5596    JSValue* src2 = ARG_src2;
     5597
     5598    CallFrame* callFrame = ARG_callFrame;
     5599
     5600    JSValue* result = jsNumber(ARG_globalData, src1->toInt32(callFrame) | src2->toInt32(callFrame));
    56015601    VM_CHECK_EXCEPTION_AT_END();
    56025602    return result;
     
    56145614    Machine* machine = ARG_globalData->machine;
    56155615   
    5616     JSValuePtr funcVal = ARG_src1;
     5616    JSValue* funcVal = ARG_src1;
    56175617    int registerOffset = ARG_int2;
    56185618    int argCount = ARG_int3;
    5619     JSValuePtr baseVal = ARG_src5;
     5619    JSValue* baseVal = ARG_src5;
    56205620
    56215621    if (baseVal == scopeChain->globalObject() && funcVal == scopeChain->globalObject()->evalFunction()) {
    56225622        JSObject* thisObject = asObject(callFrame[codeBlock->thisRegister].jsValue(callFrame));
    5623         JSValuePtr exceptionValue = noValue();
    5624         JSValuePtr result = machine->callEval(callFrame, thisObject, scopeChain, registerFile, registerOffset - RegisterFile::CallFrameHeaderSize - argCount, argCount, exceptionValue);
     5623        JSValue* exceptionValue = noValue();
     5624        JSValue* result = machine->callEval(callFrame, thisObject, scopeChain, registerFile, registerOffset - RegisterFile::CallFrameHeaderSize - argCount, argCount, exceptionValue);
    56255625        if (UNLIKELY(exceptionValue != noValue())) {
    56265626            ARG_globalData->exception = exceptionValue;
     
    56435643    unsigned vPCIndex = codeBlock->ctiReturnAddressVPCMap.get(CTI_RETURN_ADDRESS);
    56445644
    5645     JSValuePtr exceptionValue = ARG_src1;
     5645    JSValue* exceptionValue = ARG_src1;
    56465646    ASSERT(exceptionValue);
    56475647
     
    56725672
    56735673    JSPropertyNameIterator* it = ARG_pni1;
    5674     JSValuePtr temp = it->next(ARG_callFrame);
     5674    JSValue* temp = it->next(ARG_callFrame);
    56755675    if (!temp)
    56765676        it->invalidate();
     
    57055705    CTI_STACK_HACK();
    57065706
    5707     JSValuePtr v = ARG_src1;
     5707    JSValue* v = ARG_src1;
    57085708    return jsBoolean(JSImmediate::isImmediate(v) ? v->isUndefined() : v->asCell()->structureID()->typeInfo().masqueradesAsUndefined());
    57095709}
     
    57485748    CTI_STACK_HACK();
    57495749
    5750     JSValuePtr src1 = ARG_src1;
    5751     JSValuePtr src2 = ARG_src2;
     5750    JSValue* src1 = ARG_src1;
     5751    JSValue* src2 = ARG_src2;
    57525752
    57535753    // handled inline as fast cases
     
    57625762    CTI_STACK_HACK();
    57635763
    5764     JSValuePtr src1 = ARG_src1;
    5765     JSValuePtr src2 = ARG_src2;
     5764    JSValue* src1 = ARG_src1;
     5765    JSValue* src2 = ARG_src2;
    57665766
    57675767    // handled inline as fast cases
     
    57765776    CTI_STACK_HACK();
    57775777
    5778     JSValuePtr src = ARG_src1;
    5779     CallFrame* callFrame = ARG_callFrame;
    5780 
    5781     JSValuePtr result = src->toJSNumber(callFrame);
     5778    JSValue* src = ARG_src1;
     5779    CallFrame* callFrame = ARG_callFrame;
     5780
     5781    JSValue* result = src->toJSNumber(callFrame);
    57825782    VM_CHECK_EXCEPTION_AT_END();
    57835783    return result;
     
    57895789
    57905790    CallFrame* callFrame = ARG_callFrame;
    5791     JSValuePtr baseVal = ARG_src2;
     5791    JSValue* baseVal = ARG_src2;
    57925792
    57935793    if (!baseVal->isObject()) {
     
    58005800    }
    58015801
    5802     JSValuePtr propName = ARG_src1;
     5802    JSValue* propName = ARG_src1;
    58035803    JSObject* baseObj = asObject(baseVal);
    58045804
     
    58505850    CTI_STACK_HACK();
    58515851
    5852     JSValuePtr scrutinee = ARG_src1;
     5852    JSValue* scrutinee = ARG_src1;
    58535853    unsigned tableIndex = ARG_int2;
    58545854    CallFrame* callFrame = ARG_callFrame;
     
    58675867    CTI_STACK_HACK();
    58685868
    5869     JSValuePtr scrutinee = ARG_src1;
     5869    JSValue* scrutinee = ARG_src1;
    58705870    unsigned tableIndex = ARG_int2;
    58715871    CallFrame* callFrame = ARG_callFrame;
     
    58875887    CTI_STACK_HACK();
    58885888
    5889     JSValuePtr scrutinee = ARG_src1;
     5889    JSValue* scrutinee = ARG_src1;
    58905890    unsigned tableIndex = ARG_int2;
    58915891    CallFrame* callFrame = ARG_callFrame;
     
    59085908    CallFrame* callFrame = ARG_callFrame;
    59095909
    5910     JSValuePtr baseValue = ARG_src1;
     5910    JSValue* baseValue = ARG_src1;
    59115911    JSObject* baseObj = baseValue->toObject(callFrame); // may throw
    59125912
    5913     JSValuePtr subscript = ARG_src2;
    5914     JSValuePtr result;
     5913    JSValue* subscript = ARG_src2;
     5914    JSValue* result;
    59155915    uint32_t i;
    59165916    if (subscript->getUInt32(i))
     
    59605960    CodeBlock* codeBlock = callFrame->codeBlock();
    59615961    unsigned type = ARG_int1;
    5962     JSValuePtr message = ARG_src2;
     5962    JSValue* message = ARG_src2;
    59635963    unsigned lineNumber = ARG_int3;
    59645964
     
    59895989    unsigned vPCIndex = codeBlock->ctiReturnAddressVPCMap.get(ARG_globalData->throwReturnAddress);
    59905990
    5991     JSValuePtr exceptionValue = ARG_globalData->exception;
     5991    JSValue* exceptionValue = ARG_globalData->exception;
    59925992    ASSERT(exceptionValue);
    59935993    ARG_globalData->exception = noValue();
  • trunk/JavaScriptCore/VM/Machine.h

    r37730 r37845  
    125125        bool isOpcode(Opcode opcode);
    126126       
    127         JSValuePtr execute(ProgramNode*, CallFrame*, ScopeChainNode*, JSObject* thisObj, JSValuePtr* exception);
    128         JSValuePtr execute(FunctionBodyNode*, CallFrame*, JSFunction*, JSObject* thisObj, const ArgList& args, ScopeChainNode*, JSValuePtr* exception);
    129         JSValuePtr execute(EvalNode* evalNode, CallFrame* exec, JSObject* thisObj, ScopeChainNode* scopeChain, JSValuePtr* exception);
    130 
    131         JSValuePtr retrieveArguments(CallFrame*, JSFunction*) const;
    132         JSValuePtr retrieveCaller(CallFrame*, InternalFunction*) const;
    133         void retrieveLastCaller(CallFrame*, int& lineNumber, intptr_t& sourceID, UString& sourceURL, JSValuePtr& function) const;
     127        JSValue* execute(ProgramNode*, CallFrame*, ScopeChainNode*, JSObject* thisObj, JSValue** exception);
     128        JSValue* execute(FunctionBodyNode*, CallFrame*, JSFunction*, JSObject* thisObj, const ArgList& args, ScopeChainNode*, JSValue** exception);
     129        JSValue* execute(EvalNode* evalNode, CallFrame* exec, JSObject* thisObj, ScopeChainNode* scopeChain, JSValue** exception);
     130
     131        JSValue* retrieveArguments(CallFrame*, JSFunction*) const;
     132        JSValue* retrieveCaller(CallFrame*, InternalFunction*) const;
     133        void retrieveLastCaller(CallFrame*, int& lineNumber, intptr_t& sourceID, UString& sourceURL, JSValue*& function) const;
    134134       
    135135        void getArgumentsData(CallFrame*, JSFunction*&, ptrdiff_t& firstParameterIndex, Register*& argv, int& argc);
     
    269269        static const int initialTickCountThreshold = 1024;
    270270
    271         bool isJSArray(JSValuePtr v) { return !JSImmediate::isImmediate(v) && v->asCell()->vptr() == m_jsArrayVptr; }
    272         bool isJSString(JSValuePtr v) { return !JSImmediate::isImmediate(v) && v->asCell()->vptr() == m_jsStringVptr; }
     271        bool isJSArray(JSValue* v) { return !JSImmediate::isImmediate(v) && v->asCell()->vptr() == m_jsArrayVptr; }
     272        bool isJSString(JSValue* v) { return !JSImmediate::isImmediate(v) && v->asCell()->vptr() == m_jsStringVptr; }
    273273
    274274    private:
    275275        enum ExecutionFlag { Normal, InitializeAndReturn };
    276276
    277         NEVER_INLINE JSValuePtr callEval(CallFrame*, JSObject* thisObject, ScopeChainNode*, RegisterFile*, int argv, int argc, JSValuePtr& exceptionValue);
    278         JSValuePtr execute(EvalNode*, CallFrame*, JSObject* thisObject, int registerOffset, ScopeChainNode*, JSValuePtr* exception);
     277        NEVER_INLINE JSValue* callEval(CallFrame*, JSObject* thisObject, ScopeChainNode*, RegisterFile*, int argv, int argc, JSValue*& exceptionValue);
     278        JSValue* execute(EvalNode*, CallFrame*, JSObject* thisObject, int registerOffset, ScopeChainNode*, JSValue** exception);
    279279
    280280        NEVER_INLINE void debug(CallFrame*, DebugHookID, int firstLine, int lastLine);
    281281
    282         NEVER_INLINE bool resolve(CallFrame*, Instruction*, JSValuePtr& exceptionValue);
    283         NEVER_INLINE bool resolveSkip(CallFrame*, Instruction*, JSValuePtr& exceptionValue);
    284         NEVER_INLINE bool resolveGlobal(CallFrame*, Instruction*, JSValuePtr& exceptionValue);
     282        NEVER_INLINE bool resolve(CallFrame*, Instruction*, JSValue*& exceptionValue);
     283        NEVER_INLINE bool resolveSkip(CallFrame*, Instruction*, JSValue*& exceptionValue);
     284        NEVER_INLINE bool resolveGlobal(CallFrame*, Instruction*, JSValue*& exceptionValue);
    285285        NEVER_INLINE void resolveBase(CallFrame*, Instruction* vPC);
    286         NEVER_INLINE bool resolveBaseAndProperty(CallFrame*, Instruction*, JSValuePtr& exceptionValue);
     286        NEVER_INLINE bool resolveBaseAndProperty(CallFrame*, Instruction*, JSValue*& exceptionValue);
    287287        NEVER_INLINE ScopeChainNode* createExceptionScope(CallFrame*, const Instruction* vPC);
    288288
    289         NEVER_INLINE bool unwindCallFrame(CallFrame*&, JSValuePtr, const Instruction*&, CodeBlock*&);
    290         NEVER_INLINE Instruction* throwException(CallFrame*&, JSValuePtr&, const Instruction*, bool);
    291         NEVER_INLINE bool resolveBaseAndFunc(CallFrame*, Instruction*, JSValuePtr& exceptionValue);
     289        NEVER_INLINE bool unwindCallFrame(CallFrame*&, JSValue*, const Instruction*&, CodeBlock*&);
     290        NEVER_INLINE Instruction* throwException(CallFrame*&, JSValue*&, const Instruction*, bool);
     291        NEVER_INLINE bool resolveBaseAndFunc(CallFrame*, Instruction*, JSValue*& exceptionValue);
    292292
    293293        static ALWAYS_INLINE CallFrame* slideRegisterWindowForCall(CodeBlock*, RegisterFile*, CallFrame*, size_t registerOffset, int argc);
     
    295295        static CallFrame* findFunctionCallFrame(CallFrame*, InternalFunction*);
    296296
    297         JSValuePtr privateExecute(ExecutionFlag, RegisterFile*, CallFrame*, JSValuePtr* exception);
     297        JSValue* privateExecute(ExecutionFlag, RegisterFile*, CallFrame*, JSValue** exception);
    298298
    299299        void dumpCallFrame(const RegisterFile*, CallFrame*);
    300300        void dumpRegisters(const RegisterFile*, CallFrame*);
    301301
    302         JSValuePtr checkTimeout(JSGlobalObject*);
     302        JSValue* checkTimeout(JSGlobalObject*);
    303303        void resetTimeoutCheck();
    304304
    305         void tryCacheGetByID(CallFrame*, CodeBlock*, Instruction*, JSValuePtr baseValue, const Identifier& propertyName, const PropertySlot&);
     305        void tryCacheGetByID(CallFrame*, CodeBlock*, Instruction*, JSValue* baseValue, const Identifier& propertyName, const PropertySlot&);
    306306        void uncacheGetByID(CodeBlock*, Instruction* vPC);
    307         void tryCachePutByID(CallFrame*, CodeBlock*, Instruction*, JSValuePtr baseValue, const PutPropertySlot&);
     307        void tryCachePutByID(CallFrame*, CodeBlock*, Instruction*, JSValue* baseValue, const PutPropertySlot&);
    308308        void uncachePutByID(CodeBlock*, Instruction* vPC);
    309309       
     
    313313        static void throwStackOverflowPreviousFrame(CallFrame*, JSGlobalData*, void*& returnAddress);
    314314
    315         void tryCTICacheGetByID(CallFrame*, CodeBlock*, void* returnAddress, JSValuePtr baseValue, const Identifier& propertyName, const PropertySlot&);
    316         void tryCTICachePutByID(CallFrame*, CodeBlock*, void* returnAddress, JSValuePtr baseValue, const PutPropertySlot&);
     315        void tryCTICacheGetByID(CallFrame*, CodeBlock*, void* returnAddress, JSValue* baseValue, const Identifier& propertyName, const PropertySlot&);
     316        void tryCTICachePutByID(CallFrame*, CodeBlock*, void* returnAddress, JSValue* baseValue, const PutPropertySlot&);
    317317
    318318        void* getCTIArrayLengthTrampoline(CallFrame*, CodeBlock*);
  • trunk/JavaScriptCore/VM/Register.h

    r37812 r37845  
    5050    public:
    5151        Register();
    52         Register(JSValuePtr);
    53 
    54         JSValuePtr jsValue(CallFrame*) const;
    55         JSValuePtr getJSValue() const;
     52        Register(JSValue*);
     53
     54        JSValue* jsValue(CallFrame*) const;
     55        JSValue* getJSValue() const;
    5656
    5757        bool marked() const;
     
    140140    }
    141141
    142     ALWAYS_INLINE Register::Register(JSValuePtr v)
     142    ALWAYS_INLINE Register::Register(JSValue* v)
    143143    {
    144144        SET_TYPE(ValueType);
     
    147147
    148148    // This function is scaffolding for legacy clients. It will eventually go away.
    149     ALWAYS_INLINE JSValuePtr Register::jsValue(CallFrame*) const
    150     {
    151         // Once registers hold doubles, this function will allocate a JSValuePtr
     149    ALWAYS_INLINE JSValue* Register::jsValue(CallFrame*) const
     150    {
     151        // Once registers hold doubles, this function will allocate a JSValue*
    152152        // if the register doesn't hold one already.
    153153        ASSERT_TYPE(ValueType);
     
    155155    }
    156156   
    157     ALWAYS_INLINE JSValuePtr Register::getJSValue() const
     157    ALWAYS_INLINE JSValue* Register::getJSValue() const
    158158    {
    159159        ASSERT_TYPE(JSValueType);
Note: See TracChangeset for help on using the changeset viewer.