Changeset 43138 in webkit for trunk/JavaScriptCore/API/JSValueRef.cpp
- Timestamp:
- May 1, 2009, 9:52:36 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/API/JSValueRef.cpp
r43130 r43138 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.