Changeset 43158 in webkit for trunk/JavaScriptCore/API
- Timestamp:
- May 3, 2009, 12:56:13 PM (16 years ago)
- Location:
- trunk/JavaScriptCore/API
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/API/APICast.h
r43157 r43158 27 27 #define APICast_h 28 28 29 #include "JSNumberCell.h"30 29 #include "JSValue.h" 31 #include <wtf/Platform.h>32 30 33 31 namespace JSC { … … 58 56 } 59 57 60 inline JSC::JSValue toJS(JS C::ExecState* exec, JSValueRef v)58 inline JSC::JSValue toJS(JSValueRef v) 61 59 { 62 JSC::JSValue jsValue = JSC::JSValue::decode(reinterpret_cast<JSC::EncodedJSValue>(const_cast<OpaqueJSValue*>(v))); 63 #if !USE(ALTERNATE_JSIMMEDIATE) 64 if (jsValue && jsValue.isNumber()) { 65 ASSERT(jsValue.isAPIMangledNumber()); 66 return JSC::jsNumber(exec, jsValue.uncheckedGetNumber()); 67 } 68 #endif 69 return jsValue; 60 return JSC::JSValue::decode(reinterpret_cast<JSC::EncodedJSValue>(const_cast<OpaqueJSValue*>(v))); 70 61 } 71 62 … … 85 76 } 86 77 87 inline JSValueRef toRef(JSC:: ExecState* exec, JSC::JSValue v)78 inline JSValueRef toRef(JSC::JSValue v) 88 79 { 89 #if !USE(ALTERNATE_JSIMMEDIATE)90 if (v && v.isNumber()) {91 ASSERT(!v.isAPIMangledNumber());92 return reinterpret_cast<JSValueRef>(JSC::JSValue::encode(JSC::jsAPIMangledNumber(exec, v.uncheckedGetNumber())));93 }94 #endif95 80 return reinterpret_cast<JSValueRef>(JSC::JSValue::encode(v)); 81 } 82 83 inline JSValueRef* toRef(JSC::JSValue* v) 84 { 85 return reinterpret_cast<JSValueRef*>(v); 96 86 } 97 87 -
trunk/JavaScriptCore/API/JSBase.cpp
r43157 r43158 56 56 if (completion.complType() == Throw) { 57 57 if (exception) 58 *exception = toRef( exec,completion.value());58 *exception = toRef(completion.value()); 59 59 return 0; 60 60 } 61 61 62 62 if (completion.value()) 63 return toRef( exec,completion.value());63 return toRef(completion.value()); 64 64 65 65 // happens, for example, when the only statement is an empty (';') statement 66 return toRef( exec,jsUndefined());66 return toRef(jsUndefined()); 67 67 } 68 68 … … 77 77 if (completion.complType() == Throw) { 78 78 if (exception) 79 *exception = toRef( exec,completion.value());79 *exception = toRef(completion.value()); 80 80 return false; 81 81 } -
trunk/JavaScriptCore/API/JSCallbackConstructor.cpp
r43157 r43158 62 62 Vector<JSValueRef, 16> arguments(argumentCount); 63 63 for (int i = 0; i < argumentCount; i++) 64 arguments[i] = toRef(exec, args.at(i)); 65 66 JSValueRef exception = 0; 67 JSObjectRef result; 68 { 69 JSLock::DropAllLocks dropAllLocks(exec); 70 result = callback(ctx, constructorRef, argumentCount, arguments.data(), &exception); 71 } 72 if (exception) 73 exec->setException(toJS(exec, exception)); 74 return toJS(result); 64 arguments[i] = toRef(args.at(i)); 65 66 JSLock::DropAllLocks dropAllLocks(exec); 67 return toJS(callback(ctx, constructorRef, argumentCount, arguments.data(), toRef(exec->exceptionSlot()))); 75 68 } 76 69 -
trunk/JavaScriptCore/API/JSCallbackFunction.cpp
r43157 r43158 56 56 Vector<JSValueRef, 16> arguments(argumentCount); 57 57 for (int i = 0; i < argumentCount; i++) 58 arguments[i] = toRef( exec,args.at(i));58 arguments[i] = toRef(args.at(i)); 59 59 60 JSValueRef exception = 0; 61 JSValueRef result; 62 { 63 JSLock::DropAllLocks dropAllLocks(exec); 64 result = static_cast<JSCallbackFunction*>(functionObject)->m_callback(execRef, functionRef, thisObjRef, argumentCount, arguments.data(), &exception); 65 } 66 if (exception) 67 exec->setException(toJS(exec, exception)); 68 69 return toJS(exec, result); 60 JSLock::DropAllLocks dropAllLocks(exec); 61 return toJS(static_cast<JSCallbackFunction*>(functionObject)->m_callback(execRef, functionRef, thisObjRef, argumentCount, arguments.data(), toRef(exec->exceptionSlot()))); 70 62 } 71 63 -
trunk/JavaScriptCore/API/JSCallbackObjectFunctions.h
r43157 r43158 126 126 if (!propertyNameRef) 127 127 propertyNameRef = OpaqueJSString::create(propertyName.ustring()); 128 JSValueRef exception = 0; 129 JSValueRef value; 130 { 131 JSLock::DropAllLocks dropAllLocks(exec); 132 value = getProperty(ctx, thisRef, propertyNameRef.get(), &exception); 133 } 134 exec->setException(toJS(exec, exception)); 128 JSLock::DropAllLocks dropAllLocks(exec); 129 JSValueRef exception = 0; 130 JSValueRef value = getProperty(ctx, thisRef, propertyNameRef.get(), &exception); 131 exec->setException(toJS(exception)); 135 132 if (value) { 136 slot.setValue(toJS( exec,value));133 slot.setValue(toJS(value)); 137 134 return true; 138 135 } … … 173 170 JSObjectRef thisRef = toRef(this); 174 171 RefPtr<OpaqueJSString> propertyNameRef; 175 JSValueRef valueRef = toRef( exec,value);172 JSValueRef valueRef = toRef(value); 176 173 177 174 for (JSClassRef jsClass = classRef(); jsClass; jsClass = jsClass->parentClass) { … … 179 176 if (!propertyNameRef) 180 177 propertyNameRef = OpaqueJSString::create(propertyName.ustring()); 181 JSValueRef exception = 0; 182 bool result; 183 { 184 JSLock::DropAllLocks dropAllLocks(exec); 185 result = setProperty(ctx, thisRef, propertyNameRef.get(), valueRef, &exception); 186 } 187 exec->setException(toJS(exec, exception)); 178 JSLock::DropAllLocks dropAllLocks(exec); 179 JSValueRef exception = 0; 180 bool result = setProperty(ctx, thisRef, propertyNameRef.get(), valueRef, &exception); 181 exec->setException(toJS(exception)); 188 182 if (result || exception) 189 183 return; … … 197 191 if (!propertyNameRef) 198 192 propertyNameRef = OpaqueJSString::create(propertyName.ustring()); 193 JSLock::DropAllLocks dropAllLocks(exec); 199 194 JSValueRef exception = 0; 200 bool result; 201 { 202 JSLock::DropAllLocks dropAllLocks(exec); 203 result = setProperty(ctx, thisRef, propertyNameRef.get(), valueRef, &exception); 204 } 205 exec->setException(toJS(exec, exception)); 195 bool result = setProperty(ctx, thisRef, propertyNameRef.get(), valueRef, &exception); 196 exec->setException(toJS(exception)); 206 197 if (result || exception) 207 198 return; … … 235 226 if (!propertyNameRef) 236 227 propertyNameRef = OpaqueJSString::create(propertyName.ustring()); 237 JSValueRef exception = 0; 238 bool result; 239 { 240 JSLock::DropAllLocks dropAllLocks(exec); 241 result = deleteProperty(ctx, thisRef, propertyNameRef.get(), &exception); 242 } 243 exec->setException(toJS(exec, exception)); 228 JSLock::DropAllLocks dropAllLocks(exec); 229 JSValueRef exception = 0; 230 bool result = deleteProperty(ctx, thisRef, propertyNameRef.get(), &exception); 231 exec->setException(toJS(exception)); 244 232 if (result || exception) 245 233 return true; … … 295 283 Vector<JSValueRef, 16> arguments(argumentCount); 296 284 for (int i = 0; i < argumentCount; i++) 297 arguments[i] = toRef(exec, args.at(i)); 298 JSValueRef exception = 0; 299 JSObject* result; 300 { 301 JSLock::DropAllLocks dropAllLocks(exec); 302 result = toJS(callAsConstructor(execRef, constructorRef, argumentCount, arguments.data(), &exception)); 303 } 304 exec->setException(toJS(exec, exception)); 285 arguments[i] = toRef(args.at(i)); 286 JSLock::DropAllLocks dropAllLocks(exec); 287 JSValueRef exception = 0; 288 JSObject* result = toJS(callAsConstructor(execRef, constructorRef, argumentCount, arguments.data(), &exception)); 289 exec->setException(toJS(exception)); 305 290 return result; 306 291 } … … 319 304 for (JSClassRef jsClass = classRef(); jsClass; jsClass = jsClass->parentClass) { 320 305 if (JSObjectHasInstanceCallback hasInstance = jsClass->hasInstance) { 321 JSValueRef exception = 0; 322 bool result; 323 { 324 JSLock::DropAllLocks dropAllLocks(exec); 325 result = hasInstance(execRef, thisRef, toRef(exec, value), &exception); 326 } 327 exec->setException(toJS(exec, exception)); 306 JSLock::DropAllLocks dropAllLocks(exec); 307 JSValueRef exception = 0; 308 bool result = hasInstance(execRef, thisRef, toRef(value), &exception); 309 exec->setException(toJS(exception)); 328 310 return result; 329 311 } … … 356 338 Vector<JSValueRef, 16> arguments(argumentCount); 357 339 for (int i = 0; i < argumentCount; i++) 358 arguments[i] = toRef(exec, args.at(i)); 359 JSValueRef exception = 0; 360 JSValue result; 361 { 362 JSLock::DropAllLocks dropAllLocks(exec); 363 result = toJS(exec, callAsFunction(execRef, functionRef, thisObjRef, argumentCount, arguments.data(), &exception)); 364 } 365 exec->setException(toJS(exec, exception)); 340 arguments[i] = toRef(args.at(i)); 341 JSLock::DropAllLocks dropAllLocks(exec); 342 JSValueRef exception = 0; 343 JSValue result = toJS(callAsFunction(execRef, functionRef, thisObjRef, argumentCount, arguments.data(), &exception)); 344 exec->setException(toJS(exception)); 366 345 return result; 367 346 } … … 423 402 for (JSClassRef jsClass = classRef(); jsClass; jsClass = jsClass->parentClass) 424 403 if (JSObjectConvertToTypeCallback convertToType = jsClass->convertToType) { 425 JSValueRef exception = 0; 426 JSValueRef value; 427 { 428 JSLock::DropAllLocks dropAllLocks(exec); 429 value = convertToType(ctx, thisRef, kJSTypeNumber, &exception); 430 } 431 exec->setException(toJS(exec, exception)); 404 JSLock::DropAllLocks dropAllLocks(exec); 405 406 JSValueRef exception = 0; 407 JSValueRef value = convertToType(ctx, thisRef, kJSTypeNumber, &exception); 408 exec->setException(toJS(exception)); 432 409 if (value) { 433 410 double dValue; 434 return toJS( exec,value).getNumber(dValue) ? dValue : NaN;411 return toJS(value).getNumber(dValue) ? dValue : NaN; 435 412 } 436 413 } … … 447 424 for (JSClassRef jsClass = classRef(); jsClass; jsClass = jsClass->parentClass) 448 425 if (JSObjectConvertToTypeCallback convertToType = jsClass->convertToType) { 449 JSValueRef exception = 0;450 426 JSValueRef value; 427 JSValueRef exception = 0; 451 428 { 452 429 JSLock::DropAllLocks dropAllLocks(exec); 453 430 value = convertToType(ctx, thisRef, kJSTypeString, &exception); 454 }455 exec->setException(toJS(exec, exception));431 exec->setException(toJS(exception)); 432 } 456 433 if (value) 457 return toJS( exec,value).getString();434 return toJS(value).getString(); 458 435 if (exception) 459 436 return ""; … … 499 476 if (!propertyNameRef) 500 477 propertyNameRef = OpaqueJSString::create(propertyName.ustring()); 478 JSLock::DropAllLocks dropAllLocks(exec); 501 479 JSValueRef exception = 0; 502 JSValueRef value; 503 { 504 JSLock::DropAllLocks dropAllLocks(exec); 505 value = getProperty(toRef(exec), thisRef, propertyNameRef.get(), &exception); 506 } 507 exec->setException(toJS(exec, exception)); 480 JSValueRef value = getProperty(toRef(exec), thisRef, propertyNameRef.get(), &exception); 481 exec->setException(toJS(exception)); 508 482 if (value) 509 return toJS( exec,value);483 return toJS(value); 510 484 if (exception) 511 485 return jsUndefined(); … … 552 526 if (!propertyNameRef) 553 527 propertyNameRef = OpaqueJSString::create(propertyName.ustring()); 554 JSValueRef exception = 0; 555 JSValueRef value; 556 { 557 JSLock::DropAllLocks dropAllLocks(exec); 558 value = getProperty(toRef(exec), thisRef, propertyNameRef.get(), &exception); 559 } 560 exec->setException(toJS(exec, exception)); 528 JSLock::DropAllLocks dropAllLocks(exec); 529 530 JSValueRef exception = 0; 531 JSValueRef value = getProperty(toRef(exec), thisRef, propertyNameRef.get(), &exception); 532 exec->setException(toJS(exception)); 561 533 if (value) 562 return toJS( exec,value);534 return toJS(value); 563 535 if (exception) 564 536 return jsUndefined(); -
trunk/JavaScriptCore/API/JSObjectRef.cpp
r43157 r43158 131 131 if (exec->hadException()) { 132 132 if (exception) 133 *exception = toRef(exec , exec->exception());133 *exception = toRef(exec->exception()); 134 134 exec->clearException(); 135 135 result = 0; … … 148 148 MarkedArgumentBuffer argList; 149 149 for (size_t i = 0; i < argumentCount; ++i) 150 argList.append(toJS( exec,arguments[i]));150 argList.append(toJS(arguments[i])); 151 151 152 152 result = constructArray(exec, argList); … … 156 156 if (exec->hadException()) { 157 157 if (exception) 158 *exception = toRef(exec , exec->exception());158 *exception = toRef(exec->exception()); 159 159 exec->clearException(); 160 160 result = 0; … … 172 172 MarkedArgumentBuffer argList; 173 173 for (size_t i = 0; i < argumentCount; ++i) 174 argList.append(toJS( exec,arguments[i]));174 argList.append(toJS(arguments[i])); 175 175 176 176 JSObject* result = constructDate(exec, argList); 177 177 if (exec->hadException()) { 178 178 if (exception) 179 *exception = toRef(exec , exec->exception());179 *exception = toRef(exec->exception()); 180 180 exec->clearException(); 181 181 result = 0; … … 193 193 MarkedArgumentBuffer argList; 194 194 for (size_t i = 0; i < argumentCount; ++i) 195 argList.append(toJS( exec,arguments[i]));195 argList.append(toJS(arguments[i])); 196 196 197 197 JSObject* result = constructError(exec, argList); 198 198 if (exec->hadException()) { 199 199 if (exception) 200 *exception = toRef(exec , exec->exception());200 *exception = toRef(exec->exception()); 201 201 exec->clearException(); 202 202 result = 0; … … 214 214 MarkedArgumentBuffer argList; 215 215 for (size_t i = 0; i < argumentCount; ++i) 216 argList.append(toJS( exec,arguments[i]));216 argList.append(toJS(arguments[i])); 217 217 218 218 JSObject* result = constructRegExp(exec, argList); 219 219 if (exec->hadException()) { 220 220 if (exception) 221 *exception = toRef(exec , exec->exception());221 *exception = toRef(exec->exception()); 222 222 exec->clearException(); 223 223 result = 0; … … 227 227 } 228 228 229 JSValueRef JSObjectGetPrototype(JSContextRef ctx, JSObjectRef object) 230 { 231 ExecState* exec = toJS(ctx); 232 exec->globalData().heap.registerThread(); 233 JSLock lock(exec); 234 235 JSObject* jsObject = toJS(object); 236 return toRef(exec, jsObject->prototype()); 237 } 238 239 void JSObjectSetPrototype(JSContextRef ctx, JSObjectRef object, JSValueRef value) 240 { 241 ExecState* exec = toJS(ctx); 242 exec->globalData().heap.registerThread(); 243 JSLock lock(exec); 244 245 JSObject* jsObject = toJS(object); 246 JSValue jsValue = toJS(exec, value); 229 JSValueRef JSObjectGetPrototype(JSContextRef, JSObjectRef object) 230 { 231 JSObject* jsObject = toJS(object); 232 return toRef(jsObject->prototype()); 233 } 234 235 void JSObjectSetPrototype(JSContextRef, JSObjectRef object, JSValueRef value) 236 { 237 JSObject* jsObject = toJS(object); 238 JSValue jsValue = toJS(value); 247 239 248 240 jsObject->setPrototype(jsValue.isObject() ? jsValue : jsNull()); … … 271 263 if (exec->hadException()) { 272 264 if (exception) 273 *exception = toRef(exec , exec->exception());274 exec->clearException(); 275 } 276 return toRef( exec,jsValue);265 *exception = toRef(exec->exception()); 266 exec->clearException(); 267 } 268 return toRef(jsValue); 277 269 } 278 270 … … 285 277 JSObject* jsObject = toJS(object); 286 278 Identifier name(propertyName->identifier(&exec->globalData())); 287 JSValue jsValue = toJS( exec,value);279 JSValue jsValue = toJS(value); 288 280 289 281 if (attributes && !jsObject->hasProperty(exec, name)) … … 296 288 if (exec->hadException()) { 297 289 if (exception) 298 *exception = toRef(exec , exec->exception());290 *exception = toRef(exec->exception()); 299 291 exec->clearException(); 300 292 } … … 312 304 if (exec->hadException()) { 313 305 if (exception) 314 *exception = toRef(exec , exec->exception());315 exec->clearException(); 316 } 317 return toRef( exec,jsValue);306 *exception = toRef(exec->exception()); 307 exec->clearException(); 308 } 309 return toRef(jsValue); 318 310 } 319 311 … … 326 318 327 319 JSObject* jsObject = toJS(object); 328 JSValue jsValue = toJS( exec,value);320 JSValue jsValue = toJS(value); 329 321 330 322 jsObject->put(exec, propertyIndex, jsValue); 331 323 if (exec->hadException()) { 332 324 if (exception) 333 *exception = toRef(exec , exec->exception());325 *exception = toRef(exec->exception()); 334 326 exec->clearException(); 335 327 } … … 347 339 if (exec->hadException()) { 348 340 if (exception) 349 *exception = toRef(exec , exec->exception());341 *exception = toRef(exec->exception()); 350 342 exec->clearException(); 351 343 } … … 400 392 MarkedArgumentBuffer argList; 401 393 for (size_t i = 0; i < argumentCount; i++) 402 argList.append(toJS( exec,arguments[i]));394 argList.append(toJS(arguments[i])); 403 395 404 396 CallData callData; … … 407 399 return 0; 408 400 409 JSValueRef result = toRef( exec,call(exec, jsObject, callType, callData, jsThisObject, argList));410 if (exec->hadException()) { 411 if (exception) 412 *exception = toRef(exec , exec->exception());401 JSValueRef result = toRef(call(exec, jsObject, callType, callData, jsThisObject, argList)); 402 if (exec->hadException()) { 403 if (exception) 404 *exception = toRef(exec->exception()); 413 405 exec->clearException(); 414 406 result = 0; … … 439 431 MarkedArgumentBuffer argList; 440 432 for (size_t i = 0; i < argumentCount; i++) 441 argList.append(toJS( exec,arguments[i]));433 argList.append(toJS(arguments[i])); 442 434 JSObjectRef result = toRef(construct(exec, jsObject, constructType, constructData, argList)); 443 435 if (exec->hadException()) { 444 436 if (exception) 445 *exception = toRef(exec , exec->exception());437 *exception = toRef(exec->exception()); 446 438 exec->clearException(); 447 439 result = 0; -
trunk/JavaScriptCore/API/JSValueRef.cpp
r43157 r43158 42 42 #include <algorithm> // for std::min 43 43 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 44 JSType JSValueGetType(JSContextRef, JSValueRef value) 45 { 46 JSC::JSValue jsValue = toJS(value); 52 47 if (jsValue.isUndefined()) 53 48 return kJSTypeUndefined; … … 66 61 using namespace JSC; // placed here to avoid conflict between JSC::JSType and JSType, above. 67 62 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); 63 bool JSValueIsUndefined(JSContextRef, JSValueRef value) 64 { 65 JSValue jsValue = toJS(value); 75 66 return jsValue.isUndefined(); 76 67 } 77 68 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); 69 bool JSValueIsNull(JSContextRef, JSValueRef value) 70 { 71 JSValue jsValue = toJS(value); 85 72 return jsValue.isNull(); 86 73 } 87 74 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); 75 bool JSValueIsBoolean(JSContextRef, JSValueRef value) 76 { 77 JSValue jsValue = toJS(value); 95 78 return jsValue.isBoolean(); 96 79 } 97 80 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); 81 bool JSValueIsNumber(JSContextRef, JSValueRef value) 82 { 83 JSValue jsValue = toJS(value); 105 84 return jsValue.isNumber(); 106 85 } 107 86 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); 87 bool JSValueIsString(JSContextRef, JSValueRef value) 88 { 89 JSValue jsValue = toJS(value); 115 90 return jsValue.isString(); 116 91 } 117 92 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); 93 bool JSValueIsObject(JSContextRef, JSValueRef value) 94 { 95 JSValue jsValue = toJS(value); 125 96 return jsValue.isObject(); 126 97 } 127 98 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); 99 bool JSValueIsObjectOfClass(JSContextRef, JSValueRef value, JSClassRef jsClass) 100 { 101 JSValue jsValue = toJS(value); 135 102 136 103 if (JSObject* o = jsValue.getObject()) { … … 149 116 JSLock lock(exec); 150 117 151 JSValue jsA = toJS( exec,a);152 JSValue jsB = toJS( exec,b);118 JSValue jsA = toJS(a); 119 JSValue jsB = toJS(b); 153 120 154 121 bool result = JSValue::equal(exec, jsA, jsB); // false if an exception is thrown 155 122 if (exec->hadException()) { 156 123 if (exception) 157 *exception = toRef(exec , exec->exception());124 *exception = toRef(exec->exception()); 158 125 exec->clearException(); 159 126 } … … 161 128 } 162 129 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); 130 bool 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; 173 137 } 174 138 … … 179 143 JSLock lock(exec); 180 144 181 JSValue jsValue = toJS(exec, value); 182 145 JSValue jsValue = toJS(value); 183 146 JSObject* jsConstructor = toJS(constructor); 184 147 if (!jsConstructor->structure()->typeInfo().implementsHasInstance()) … … 187 150 if (exec->hadException()) { 188 151 if (exception) 189 *exception = toRef(exec , exec->exception());152 *exception = toRef(exec->exception()); 190 153 exec->clearException(); 191 154 } … … 193 156 } 194 157 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)); 158 JSValueRef JSValueMakeUndefined(JSContextRef) 159 { 160 return toRef(jsUndefined()); 161 } 162 163 JSValueRef JSValueMakeNull(JSContextRef) 164 { 165 return toRef(jsNull()); 166 } 167 168 JSValueRef JSValueMakeBoolean(JSContextRef, bool value) 169 { 170 return toRef(jsBoolean(value)); 220 171 } 221 172 … … 226 177 JSLock lock(exec); 227 178 228 return toRef( exec,jsNumber(exec, value));179 return toRef(jsNumber(exec, value)); 229 180 } 230 181 … … 235 186 JSLock lock(exec); 236 187 237 return toRef( exec,jsString(exec, string->ustring()));188 return toRef(jsString(exec, string->ustring())); 238 189 } 239 190 … … 241 192 { 242 193 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); 247 195 return jsValue.toBoolean(exec); 248 196 } … … 254 202 JSLock lock(exec); 255 203 256 JSValue jsValue = toJS( exec,value);204 JSValue jsValue = toJS(value); 257 205 258 206 double number = jsValue.toNumber(exec); 259 207 if (exec->hadException()) { 260 208 if (exception) 261 *exception = toRef(exec , exec->exception());209 *exception = toRef(exec->exception()); 262 210 exec->clearException(); 263 211 number = NaN; … … 272 220 JSLock lock(exec); 273 221 274 JSValue jsValue = toJS( exec,value);222 JSValue jsValue = toJS(value); 275 223 276 224 RefPtr<OpaqueJSString> stringRef(OpaqueJSString::create(jsValue.toString(exec))); 277 225 if (exec->hadException()) { 278 226 if (exception) 279 *exception = toRef(exec , exec->exception());227 *exception = toRef(exec->exception()); 280 228 exec->clearException(); 281 229 stringRef.clear(); … … 290 238 JSLock lock(exec); 291 239 292 JSValue jsValue = toJS( exec,value);240 JSValue jsValue = toJS(value); 293 241 294 242 JSObjectRef objectRef = toRef(jsValue.toObject(exec)); 295 243 if (exec->hadException()) { 296 244 if (exception) 297 *exception = toRef(exec , exec->exception());245 *exception = toRef(exec->exception()); 298 246 exec->clearException(); 299 247 objectRef = 0; … … 308 256 JSLock lock(exec); 309 257 310 JSValue jsValue = toJS( exec,value);258 JSValue jsValue = toJS(value); 311 259 gcProtect(jsValue); 312 260 } … … 318 266 JSLock lock(exec); 319 267 320 JSValue jsValue = toJS( exec,value);268 JSValue jsValue = toJS(value); 321 269 gcUnprotect(jsValue); 322 270 }
Note:
See TracChangeset
for help on using the changeset viewer.