Ignore:
Timestamp:
May 1, 2009, 9:52:36 PM (16 years ago)
Author:
[email protected]
Message:

JavaScriptCore:

2009-05-01 Sam Weinig <[email protected]>

Roll out JavaScriptCore API number marshaling.

  • API/APICast.h: (toJS): (toRef):
  • API/JSBase.cpp: (JSEvaluateScript): (JSCheckScriptSyntax):
  • API/JSCallbackConstructor.cpp: (JSC::constructJSCallback):
  • API/JSCallbackFunction.cpp: (JSC::JSCallbackFunction::call):
  • API/JSCallbackObjectFunctions.h: (JSC::::getOwnPropertySlot): (JSC::::put): (JSC::::deleteProperty): (JSC::::construct): (JSC::::hasInstance): (JSC::::call): (JSC::::toNumber): (JSC::::toString): (JSC::::staticValueGetter): (JSC::::callbackGetter):
  • API/JSObjectRef.cpp: (JSObjectMakeFunction): (JSObjectMakeArray): (JSObjectMakeDate): (JSObjectMakeError): (JSObjectMakeRegExp): (JSObjectGetPrototype): (JSObjectSetPrototype): (JSObjectGetProperty): (JSObjectSetProperty): (JSObjectGetPropertyAtIndex): (JSObjectSetPropertyAtIndex): (JSObjectDeleteProperty): (JSObjectCallAsFunction): (JSObjectCallAsConstructor):
  • API/JSValueRef.cpp: (JSValueGetType): (JSValueIsUndefined): (JSValueIsNull): (JSValueIsBoolean): (JSValueIsNumber): (JSValueIsString): (JSValueIsObject): (JSValueIsObjectOfClass): (JSValueIsEqual): (JSValueIsStrictEqual): (JSValueIsInstanceOfConstructor): (JSValueMakeUndefined): (JSValueMakeNull): (JSValueMakeBoolean): (JSValueMakeNumber): (JSValueMakeString): (JSValueToBoolean): (JSValueToNumber): (JSValueToStringCopy): (JSValueToObject): (JSValueProtect): (JSValueUnprotect):
  • JavaScriptCore.exp:
  • JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
  • JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:
  • runtime/JSNumberCell.cpp:
  • runtime/JSNumberCell.h:
  • runtime/JSValue.h:

WebCore:

2009-05-01 Sam Weinig <[email protected]>

Roll out JavaScriptCore API number marshaling.

  • bindings/js/ScriptValue.cpp: (WebCore::ScriptValue::isEqual):
  • inspector/JavaScriptProfile.cpp: (WebCore::getHeadCallback):
  • inspector/JavaScriptProfileNode.cpp: (WebCore::getChildren): (WebCore::getParent): (WebCore::getHead):
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/API/JSValueRef.cpp

    r43130 r43138  
    4242#include <algorithm> // for std::min
    4343
    44 JSType JSValueGetType(JSContextRef ctx, JSValueRef value)
    45 {
    46     JSC::ExecState* exec = toJS(ctx);
    47     exec->globalData().heap.registerThread();
    48     JSC::JSLock lock(exec);
    49 
    50     JSC::JSValue jsValue = toJS(exec, value);
    51 
     44JSType JSValueGetType(JSContextRef, JSValueRef value)
     45{
     46    JSC::JSValue jsValue = toJS(value);
    5247    if (jsValue.isUndefined())
    5348        return kJSTypeUndefined;
     
    6661using namespace JSC; // placed here to avoid conflict between JSC::JSType and JSType, above.
    6762
    68 bool JSValueIsUndefined(JSContextRef ctx, JSValueRef value)
    69 {
    70     ExecState* exec = toJS(ctx);
    71     exec->globalData().heap.registerThread();
    72     JSLock lock(exec);
    73 
    74     JSValue jsValue = toJS(exec, value);
     63bool JSValueIsUndefined(JSContextRef, JSValueRef value)
     64{
     65    JSValue jsValue = toJS(value);
    7566    return jsValue.isUndefined();
    7667}
    7768
    78 bool JSValueIsNull(JSContextRef ctx, JSValueRef value)
    79 {
    80     ExecState* exec = toJS(ctx);
    81     exec->globalData().heap.registerThread();
    82     JSLock lock(exec);
    83 
    84     JSValue jsValue = toJS(exec, value);
     69bool JSValueIsNull(JSContextRef, JSValueRef value)
     70{
     71    JSValue jsValue = toJS(value);
    8572    return jsValue.isNull();
    8673}
    8774
    88 bool JSValueIsBoolean(JSContextRef ctx, JSValueRef value)
    89 {
    90     ExecState* exec = toJS(ctx);
    91     exec->globalData().heap.registerThread();
    92     JSLock lock(exec);
    93 
    94     JSValue jsValue = toJS(exec, value);
     75bool JSValueIsBoolean(JSContextRef, JSValueRef value)
     76{
     77    JSValue jsValue = toJS(value);
    9578    return jsValue.isBoolean();
    9679}
    9780
    98 bool JSValueIsNumber(JSContextRef ctx, JSValueRef value)
    99 {
    100     ExecState* exec = toJS(ctx);
    101     exec->globalData().heap.registerThread();
    102     JSLock lock(exec);
    103 
    104     JSValue jsValue = toJS(exec, value);
     81bool JSValueIsNumber(JSContextRef, JSValueRef value)
     82{
     83    JSValue jsValue = toJS(value);
    10584    return jsValue.isNumber();
    10685}
    10786
    108 bool JSValueIsString(JSContextRef ctx, JSValueRef value)
    109 {
    110     ExecState* exec = toJS(ctx);
    111     exec->globalData().heap.registerThread();
    112     JSLock lock(exec);
    113 
    114     JSValue jsValue = toJS(exec, value);
     87bool JSValueIsString(JSContextRef, JSValueRef value)
     88{
     89    JSValue jsValue = toJS(value);
    11590    return jsValue.isString();
    11691}
    11792
    118 bool JSValueIsObject(JSContextRef ctx, JSValueRef value)
    119 {
    120     ExecState* exec = toJS(ctx);
    121     exec->globalData().heap.registerThread();
    122     JSLock lock(exec);
    123 
    124     JSValue jsValue = toJS(exec, value);
     93bool JSValueIsObject(JSContextRef, JSValueRef value)
     94{
     95    JSValue jsValue = toJS(value);
    12596    return jsValue.isObject();
    12697}
    12798
    128 bool JSValueIsObjectOfClass(JSContextRef ctx, JSValueRef value, JSClassRef jsClass)
    129 {
    130     ExecState* exec = toJS(ctx);
    131     exec->globalData().heap.registerThread();
    132     JSLock lock(exec);
    133 
    134     JSValue jsValue = toJS(exec, value);
     99bool JSValueIsObjectOfClass(JSContextRef, JSValueRef value, JSClassRef jsClass)
     100{
     101    JSValue jsValue = toJS(value);
    135102   
    136103    if (JSObject* o = jsValue.getObject()) {
     
    149116    JSLock lock(exec);
    150117
    151     JSValue jsA = toJS(exec, a);
    152     JSValue jsB = toJS(exec, b);
     118    JSValue jsA = toJS(a);
     119    JSValue jsB = toJS(b);
    153120
    154121    bool result = JSValue::equal(exec, jsA, jsB); // false if an exception is thrown
    155122    if (exec->hadException()) {
    156123        if (exception)
    157             *exception = toRef(exec, exec->exception());
     124            *exception = toRef(exec->exception());
    158125        exec->clearException();
    159126    }
     
    161128}
    162129
    163 bool JSValueIsStrictEqual(JSContextRef ctx, JSValueRef a, JSValueRef b)
    164 {
    165     ExecState* exec = toJS(ctx);
    166     exec->globalData().heap.registerThread();
    167     JSLock lock(exec);
    168 
    169     JSValue jsA = toJS(exec, a);
    170     JSValue jsB = toJS(exec, b);
    171 
    172     return JSValue::strictEqual(jsA, jsB);
     130bool JSValueIsStrictEqual(JSContextRef, JSValueRef a, JSValueRef b)
     131{
     132    JSValue jsA = toJS(a);
     133    JSValue jsB = toJS(b);
     134   
     135    bool result = JSValue::strictEqual(jsA, jsB);
     136    return result;
    173137}
    174138
     
    179143    JSLock lock(exec);
    180144
    181     JSValue jsValue = toJS(exec, value);
    182 
     145    JSValue jsValue = toJS(value);
    183146    JSObject* jsConstructor = toJS(constructor);
    184147    if (!jsConstructor->structure()->typeInfo().implementsHasInstance())
     
    187150    if (exec->hadException()) {
    188151        if (exception)
    189             *exception = toRef(exec, exec->exception());
     152            *exception = toRef(exec->exception());
    190153        exec->clearException();
    191154    }
     
    193156}
    194157
    195 JSValueRef JSValueMakeUndefined(JSContextRef ctx)
    196 {
    197     ExecState* exec = toJS(ctx);
    198     exec->globalData().heap.registerThread();
    199     JSLock lock(exec);
    200 
    201     return toRef(exec, jsUndefined());
    202 }
    203 
    204 JSValueRef JSValueMakeNull(JSContextRef ctx)
    205 {
    206     ExecState* exec = toJS(ctx);
    207     exec->globalData().heap.registerThread();
    208     JSLock lock(exec);
    209 
    210     return toRef(exec, jsNull());
    211 }
    212 
    213 JSValueRef JSValueMakeBoolean(JSContextRef ctx, bool value)
    214 {
    215     ExecState* exec = toJS(ctx);
    216     exec->globalData().heap.registerThread();
    217     JSLock lock(exec);
    218 
    219     return toRef(exec, jsBoolean(value));
     158JSValueRef JSValueMakeUndefined(JSContextRef)
     159{
     160    return toRef(jsUndefined());
     161}
     162
     163JSValueRef JSValueMakeNull(JSContextRef)
     164{
     165    return toRef(jsNull());
     166}
     167
     168JSValueRef JSValueMakeBoolean(JSContextRef, bool value)
     169{
     170    return toRef(jsBoolean(value));
    220171}
    221172
     
    226177    JSLock lock(exec);
    227178
    228     return toRef(exec, jsNumber(exec, value));
     179    return toRef(jsNumber(exec, value));
    229180}
    230181
     
    235186    JSLock lock(exec);
    236187
    237     return toRef(exec, jsString(exec, string->ustring()));
     188    return toRef(jsString(exec, string->ustring()));
    238189}
    239190
     
    241192{
    242193    ExecState* exec = toJS(ctx);
    243     exec->globalData().heap.registerThread();
    244     JSLock lock(exec);
    245 
    246     JSValue jsValue = toJS(exec, value);
     194    JSValue jsValue = toJS(value);
    247195    return jsValue.toBoolean(exec);
    248196}
     
    254202    JSLock lock(exec);
    255203
    256     JSValue jsValue = toJS(exec, value);
     204    JSValue jsValue = toJS(value);
    257205
    258206    double number = jsValue.toNumber(exec);
    259207    if (exec->hadException()) {
    260208        if (exception)
    261             *exception = toRef(exec, exec->exception());
     209            *exception = toRef(exec->exception());
    262210        exec->clearException();
    263211        number = NaN;
     
    272220    JSLock lock(exec);
    273221
    274     JSValue jsValue = toJS(exec, value);
     222    JSValue jsValue = toJS(value);
    275223   
    276224    RefPtr<OpaqueJSString> stringRef(OpaqueJSString::create(jsValue.toString(exec)));
    277225    if (exec->hadException()) {
    278226        if (exception)
    279             *exception = toRef(exec, exec->exception());
     227            *exception = toRef(exec->exception());
    280228        exec->clearException();
    281229        stringRef.clear();
     
    290238    JSLock lock(exec);
    291239
    292     JSValue jsValue = toJS(exec, value);
     240    JSValue jsValue = toJS(value);
    293241   
    294242    JSObjectRef objectRef = toRef(jsValue.toObject(exec));
    295243    if (exec->hadException()) {
    296244        if (exception)
    297             *exception = toRef(exec, exec->exception());
     245            *exception = toRef(exec->exception());
    298246        exec->clearException();
    299247        objectRef = 0;
     
    308256    JSLock lock(exec);
    309257
    310     JSValue jsValue = toJS(exec, value);
     258    JSValue jsValue = toJS(value);
    311259    gcProtect(jsValue);
    312260}
     
    318266    JSLock lock(exec);
    319267
    320     JSValue jsValue = toJS(exec, value);
     268    JSValue jsValue = toJS(value);
    321269    gcUnprotect(jsValue);
    322270}
Note: See TracChangeset for help on using the changeset viewer.