Changeset 37728 in webkit for trunk/JavaScriptCore/VM/Machine.cpp
- Timestamp:
- Oct 20, 2008, 9:22:55 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/VM/Machine.cpp
r37727 r37728 4248 4248 do { \ 4249 4249 VM_THROW_EXCEPTION_AT_END(); \ 4250 return noValue(); \4250 return 0; \ 4251 4251 } while (0) 4252 4252 #define VM_THROW_EXCEPTION_2() \ … … 4277 4277 } while (0) 4278 4278 4279 JS ValuePtrMachine::cti_op_convert_this(CTI_ARGS)4279 JSObject* Machine::cti_op_convert_this(CTI_ARGS) 4280 4280 { 4281 4281 CTI_STACK_HACK(); … … 4298 4298 } 4299 4299 4300 JSValue PtrMachine::cti_op_add(CTI_ARGS)4300 JSValue* Machine::cti_op_add(CTI_ARGS) 4301 4301 { 4302 4302 CTI_STACK_HACK(); … … 4310 4310 bool rightIsNumber = fastIsNumber(v2, right); 4311 4311 if (rightIsNumber && fastIsNumber(v1, left)) 4312 return jsNumber(ARG_globalData, left + right) ;4312 return jsNumber(ARG_globalData, left + right).payload(); 4313 4313 4314 4314 CallFrame* callFrame = ARG_callFrame; … … 4322 4322 } 4323 4323 4324 return jsString(ARG_globalData, value.release());4324 return JSValuePtr(jsString(ARG_globalData, value.release())).payload(); 4325 4325 } 4326 4326 … … 4334 4334 VM_THROW_EXCEPTION(); 4335 4335 } 4336 return jsString(ARG_globalData, value.release());4336 return JSValuePtr(jsString(ARG_globalData, value.release())).payload(); 4337 4337 } 4338 4338 … … 4340 4340 JSValuePtr result = jsAddSlowCase(callFrame, v1, v2); 4341 4341 VM_CHECK_EXCEPTION_AT_END(); 4342 return result ;4343 } 4344 4345 JSValue PtrMachine::cti_op_pre_inc(CTI_ARGS)4342 return result.payload(); 4343 } 4344 4345 JSValue* Machine::cti_op_pre_inc(CTI_ARGS) 4346 4346 { 4347 4347 CTI_STACK_HACK(); … … 4352 4352 JSValuePtr result = jsNumber(ARG_globalData, v->toNumber(callFrame) + 1); 4353 4353 VM_CHECK_EXCEPTION_AT_END(); 4354 return result ;4354 return result.payload(); 4355 4355 } 4356 4356 … … 4409 4409 } 4410 4410 4411 JS ValuePtrMachine::cti_op_new_object(CTI_ARGS)4412 { 4413 CTI_STACK_HACK(); 4414 4415 return constructEmptyObject(ARG_callFrame); ;4411 JSObject* Machine::cti_op_new_object(CTI_ARGS) 4412 { 4413 CTI_STACK_HACK(); 4414 4415 return constructEmptyObject(ARG_callFrame); 4416 4416 } 4417 4417 … … 4466 4466 } 4467 4467 4468 JSValue PtrMachine::cti_op_get_by_id(CTI_ARGS)4468 JSValue* Machine::cti_op_get_by_id(CTI_ARGS) 4469 4469 { 4470 4470 CTI_STACK_HACK(); … … 4480 4480 4481 4481 VM_CHECK_EXCEPTION_AT_END(); 4482 return result ;4483 } 4484 4485 JSValue PtrMachine::cti_op_get_by_id_second(CTI_ARGS)4482 return result.payload(); 4483 } 4484 4485 JSValue* Machine::cti_op_get_by_id_second(CTI_ARGS) 4486 4486 { 4487 4487 CTI_STACK_HACK(); … … 4497 4497 4498 4498 VM_CHECK_EXCEPTION_AT_END(); 4499 return result ;4500 } 4501 4502 JSValue PtrMachine::cti_op_get_by_id_generic(CTI_ARGS)4499 return result.payload(); 4500 } 4501 4502 JSValue* Machine::cti_op_get_by_id_generic(CTI_ARGS) 4503 4503 { 4504 4504 CTI_STACK_HACK(); … … 4512 4512 4513 4513 VM_CHECK_EXCEPTION_AT_END(); 4514 return result ;4515 } 4516 4517 JSValue PtrMachine::cti_op_get_by_id_fail(CTI_ARGS)4514 return result.payload(); 4515 } 4516 4517 JSValue* Machine::cti_op_get_by_id_fail(CTI_ARGS) 4518 4518 { 4519 4519 CTI_STACK_HACK(); … … 4530 4530 4531 4531 VM_CHECK_EXCEPTION_AT_END(); 4532 return result ;4533 } 4534 4535 JSValue PtrMachine::cti_op_instanceof(CTI_ARGS)4532 return result.payload(); 4533 } 4534 4535 JSValue* Machine::cti_op_instanceof(CTI_ARGS) 4536 4536 { 4537 4537 CTI_STACK_HACK(); … … 4557 4557 4558 4558 if (!asObject(baseVal)->structureID()->typeInfo().implementsHasInstance()) 4559 return jsBoolean(false);4559 return JSValuePtr(jsBoolean(false)).payload(); 4560 4560 4561 4561 if (!proto->isObject()) { … … 4565 4565 4566 4566 if (!value->isObject()) 4567 return jsBoolean(false);4567 return JSValuePtr(jsBoolean(false)).payload(); 4568 4568 4569 4569 JSValuePtr result = jsBoolean(asObject(baseVal)->hasInstance(callFrame, value, proto)); 4570 4570 VM_CHECK_EXCEPTION_AT_END(); 4571 4571 4572 return result ;4573 } 4574 4575 JSValue PtrMachine::cti_op_del_by_id(CTI_ARGS)4572 return result.payload(); 4573 } 4574 4575 JSValue* Machine::cti_op_del_by_id(CTI_ARGS) 4576 4576 { 4577 4577 CTI_STACK_HACK(); … … 4584 4584 JSValuePtr result = jsBoolean(baseObj->deleteProperty(callFrame, ident)); 4585 4585 VM_CHECK_EXCEPTION_AT_END(); 4586 return result ;4587 } 4588 4589 JSValue PtrMachine::cti_op_mul(CTI_ARGS)4586 return result.payload(); 4587 } 4588 4589 JSValue* Machine::cti_op_mul(CTI_ARGS) 4590 4590 { 4591 4591 CTI_STACK_HACK(); … … 4597 4597 double right; 4598 4598 if (fastIsNumber(src1, left) && fastIsNumber(src2, right)) 4599 return jsNumber(ARG_globalData, left * right) ;4599 return jsNumber(ARG_globalData, left * right).payload(); 4600 4600 4601 4601 CallFrame* callFrame = ARG_callFrame; 4602 4602 JSValuePtr result = jsNumber(ARG_globalData, src1->toNumber(callFrame) * src2->toNumber(callFrame)); 4603 4603 VM_CHECK_EXCEPTION_AT_END(); 4604 return result ;4605 } 4606 4607 JS ValuePtrMachine::cti_op_new_func(CTI_ARGS)4604 return result.payload(); 4605 } 4606 4607 JSObject* Machine::cti_op_new_func(CTI_ARGS) 4608 4608 { 4609 4609 CTI_STACK_HACK(); … … 4698 4698 } 4699 4699 4700 JS ValuePtrMachine::cti_op_push_activation(CTI_ARGS)4700 JSObject* Machine::cti_op_push_activation(CTI_ARGS) 4701 4701 { 4702 4702 CTI_STACK_HACK(); … … 4707 4707 } 4708 4708 4709 JSValue PtrMachine::cti_op_call_NotJSFunction(CTI_ARGS)4709 JSValue* Machine::cti_op_call_NotJSFunction(CTI_ARGS) 4710 4710 { 4711 4711 CTI_STACK_HACK(); … … 4742 4742 (*ARG_profilerReference)->didExecute(previousCallFrame, asObject(funcVal)); 4743 4743 4744 return returnValue ;4744 return returnValue.payload(); 4745 4745 } 4746 4746 … … 4799 4799 } 4800 4800 4801 JS ValuePtrMachine::cti_op_new_array(CTI_ARGS)4801 JSObject* Machine::cti_op_new_array(CTI_ARGS) 4802 4802 { 4803 4803 CTI_STACK_HACK(); … … 4807 4807 } 4808 4808 4809 JSValue PtrMachine::cti_op_resolve(CTI_ARGS)4809 JSValue* Machine::cti_op_resolve(CTI_ARGS) 4810 4810 { 4811 4811 CTI_STACK_HACK(); … … 4825 4825 JSValuePtr result = slot.getValue(callFrame, ident); 4826 4826 VM_CHECK_EXCEPTION_AT_END(); 4827 return result ;4827 return result.payload(); 4828 4828 } 4829 4829 } while (++iter != end); … … 4836 4836 } 4837 4837 4838 JS ValuePtrMachine::cti_op_construct_JSConstructFast(CTI_ARGS)4838 JSObject* Machine::cti_op_construct_JSConstructFast(CTI_ARGS) 4839 4839 { 4840 4840 CTI_STACK_HACK(); … … 4915 4915 } 4916 4916 4917 JSValue PtrMachine::cti_op_construct_NotJSConstruct(CTI_ARGS)4917 JSValue* Machine::cti_op_construct_NotJSConstruct(CTI_ARGS) 4918 4918 { 4919 4919 CTI_STACK_HACK(); … … 4944 4944 (*ARG_profilerReference)->didExecute(callFrame, constructor); 4945 4945 4946 return returnValue ;4946 return returnValue.payload(); 4947 4947 } 4948 4948 … … 4953 4953 } 4954 4954 4955 JSValue PtrMachine::cti_op_get_by_val(CTI_ARGS)4955 JSValue* Machine::cti_op_get_by_val(CTI_ARGS) 4956 4956 { 4957 4957 CTI_STACK_HACK(); … … 4984 4984 4985 4985 VM_CHECK_EXCEPTION_AT_END(); 4986 return result ;4986 return result.payload(); 4987 4987 } 4988 4988 … … 5031 5031 } 5032 5032 5033 JSValue PtrMachine::cti_op_sub(CTI_ARGS)5033 JSValue* Machine::cti_op_sub(CTI_ARGS) 5034 5034 { 5035 5035 CTI_STACK_HACK(); … … 5041 5041 double right; 5042 5042 if (fastIsNumber(src1, left) && fastIsNumber(src2, right)) 5043 return jsNumber(ARG_globalData, left - right) ;5043 return jsNumber(ARG_globalData, left - right).payload(); 5044 5044 5045 5045 CallFrame* callFrame = ARG_callFrame; 5046 5046 JSValuePtr result = jsNumber(ARG_globalData, src1->toNumber(callFrame) - src2->toNumber(callFrame)); 5047 5047 VM_CHECK_EXCEPTION_AT_END(); 5048 return result ;5048 return result.payload(); 5049 5049 } 5050 5050 … … 5109 5109 } 5110 5110 5111 JSValue PtrMachine::cti_op_lesseq(CTI_ARGS)5111 JSValue* Machine::cti_op_lesseq(CTI_ARGS) 5112 5112 { 5113 5113 CTI_STACK_HACK(); … … 5116 5116 JSValuePtr result = jsBoolean(jsLessEq(callFrame, ARG_src1, ARG_src2)); 5117 5117 VM_CHECK_EXCEPTION_AT_END(); 5118 return result ;5118 return result.payload(); 5119 5119 } 5120 5120 … … 5132 5132 } 5133 5133 5134 JSValue PtrMachine::cti_op_negate(CTI_ARGS)5134 JSValue* Machine::cti_op_negate(CTI_ARGS) 5135 5135 { 5136 5136 CTI_STACK_HACK(); … … 5140 5140 double v; 5141 5141 if (fastIsNumber(src, v)) 5142 return jsNumber(ARG_globalData, -v) ;5142 return jsNumber(ARG_globalData, -v).payload(); 5143 5143 5144 5144 CallFrame* callFrame = ARG_callFrame; 5145 5145 JSValuePtr result = jsNumber(ARG_globalData, -src->toNumber(callFrame)); 5146 5146 VM_CHECK_EXCEPTION_AT_END(); 5147 return result ;5148 } 5149 5150 JSValue PtrMachine::cti_op_resolve_base(CTI_ARGS)5151 { 5152 CTI_STACK_HACK(); 5153 5154 return inlineResolveBase(ARG_callFrame, *ARG_id1, ARG_callFrame->scopeChain()) ;5155 } 5156 5157 JSValue PtrMachine::cti_op_resolve_skip(CTI_ARGS)5147 return result.payload(); 5148 } 5149 5150 JSValue* Machine::cti_op_resolve_base(CTI_ARGS) 5151 { 5152 CTI_STACK_HACK(); 5153 5154 return inlineResolveBase(ARG_callFrame, *ARG_id1, ARG_callFrame->scopeChain()).payload(); 5155 } 5156 5157 JSValue* Machine::cti_op_resolve_skip(CTI_ARGS) 5158 5158 { 5159 5159 CTI_STACK_HACK(); … … 5178 5178 JSValuePtr result = slot.getValue(callFrame, ident); 5179 5179 VM_CHECK_EXCEPTION_AT_END(); 5180 return result ;5180 return result.payload(); 5181 5181 } 5182 5182 } while (++iter != end); … … 5189 5189 } 5190 5190 5191 JSValue PtrMachine::cti_op_resolve_global(CTI_ARGS)5191 JSValue* Machine::cti_op_resolve_global(CTI_ARGS) 5192 5192 { 5193 5193 CTI_STACK_HACK(); … … 5208 5208 vPC[4] = globalObject->structureID(); 5209 5209 vPC[5] = slot.cachedOffset(); 5210 return result ;5210 return result.payload(); 5211 5211 } 5212 5212 5213 5213 VM_CHECK_EXCEPTION_AT_END(); 5214 return result ;5214 return result.payload(); 5215 5215 } 5216 5216 … … 5219 5219 } 5220 5220 5221 JSValue PtrMachine::cti_op_div(CTI_ARGS)5221 JSValue* Machine::cti_op_div(CTI_ARGS) 5222 5222 { 5223 5223 CTI_STACK_HACK(); … … 5229 5229 double right; 5230 5230 if (fastIsNumber(src1, left) && fastIsNumber(src2, right)) 5231 return jsNumber(ARG_globalData, left / right) ;5231 return jsNumber(ARG_globalData, left / right).payload(); 5232 5232 5233 5233 CallFrame* callFrame = ARG_callFrame; 5234 5234 JSValuePtr result = jsNumber(ARG_globalData, src1->toNumber(callFrame) / src2->toNumber(callFrame)); 5235 5235 VM_CHECK_EXCEPTION_AT_END(); 5236 return result ;5237 } 5238 5239 JSValue PtrMachine::cti_op_pre_dec(CTI_ARGS)5236 return result.payload(); 5237 } 5238 5239 JSValue* Machine::cti_op_pre_dec(CTI_ARGS) 5240 5240 { 5241 5241 CTI_STACK_HACK(); … … 5246 5246 JSValuePtr result = jsNumber(ARG_globalData, v->toNumber(callFrame) - 1); 5247 5247 VM_CHECK_EXCEPTION_AT_END(); 5248 return result ;5248 return result.payload(); 5249 5249 } 5250 5250 … … 5262 5262 } 5263 5263 5264 JSValue PtrMachine::cti_op_not(CTI_ARGS)5264 JSValue* Machine::cti_op_not(CTI_ARGS) 5265 5265 { 5266 5266 CTI_STACK_HACK(); … … 5272 5272 JSValuePtr result = jsBoolean(!src->toBoolean(callFrame)); 5273 5273 VM_CHECK_EXCEPTION_AT_END(); 5274 return result ;5274 return result.payload(); 5275 5275 } 5276 5276 … … 5303 5303 } 5304 5304 5305 JSValue PtrMachine::cti_op_eq(CTI_ARGS)5305 JSValue* Machine::cti_op_eq(CTI_ARGS) 5306 5306 { 5307 5307 CTI_STACK_HACK(); … … 5315 5315 JSValuePtr result = jsBoolean(equalSlowCaseInline(callFrame, src1, src2)); 5316 5316 VM_CHECK_EXCEPTION_AT_END(); 5317 return result ;5318 } 5319 5320 JSValue PtrMachine::cti_op_lshift(CTI_ARGS)5317 return result.payload(); 5318 } 5319 5320 JSValue* Machine::cti_op_lshift(CTI_ARGS) 5321 5321 { 5322 5322 CTI_STACK_HACK(); … … 5328 5328 uint32_t right; 5329 5329 if (JSImmediate::areBothImmediateNumbers(val, shift)) 5330 return jsNumber(ARG_globalData, JSImmediate::getTruncatedInt32(val) << (JSImmediate::getTruncatedUInt32(shift) & 0x1f)) ;5330 return jsNumber(ARG_globalData, JSImmediate::getTruncatedInt32(val) << (JSImmediate::getTruncatedUInt32(shift) & 0x1f)).payload(); 5331 5331 if (fastToInt32(val, left) && fastToUInt32(shift, right)) 5332 return jsNumber(ARG_globalData, left << (right & 0x1f)) ;5332 return jsNumber(ARG_globalData, left << (right & 0x1f)).payload(); 5333 5333 5334 5334 CallFrame* callFrame = ARG_callFrame; 5335 5335 JSValuePtr result = jsNumber(ARG_globalData, (val->toInt32(callFrame)) << (shift->toUInt32(callFrame) & 0x1f)); 5336 5336 VM_CHECK_EXCEPTION_AT_END(); 5337 return result ;5338 } 5339 5340 JSValue PtrMachine::cti_op_bitand(CTI_ARGS)5337 return result.payload(); 5338 } 5339 5340 JSValue* Machine::cti_op_bitand(CTI_ARGS) 5341 5341 { 5342 5342 CTI_STACK_HACK(); … … 5348 5348 int32_t right; 5349 5349 if (fastToInt32(src1, left) && fastToInt32(src2, right)) 5350 return jsNumber(ARG_globalData, left & right) ;5350 return jsNumber(ARG_globalData, left & right).payload(); 5351 5351 5352 5352 CallFrame* callFrame = ARG_callFrame; 5353 5353 JSValuePtr result = jsNumber(ARG_globalData, src1->toInt32(callFrame) & src2->toInt32(callFrame)); 5354 5354 VM_CHECK_EXCEPTION_AT_END(); 5355 return result ;5356 } 5357 5358 JSValue PtrMachine::cti_op_rshift(CTI_ARGS)5355 return result.payload(); 5356 } 5357 5358 JSValue* Machine::cti_op_rshift(CTI_ARGS) 5359 5359 { 5360 5360 CTI_STACK_HACK(); … … 5366 5366 uint32_t right; 5367 5367 if (JSImmediate::areBothImmediateNumbers(val, shift)) 5368 return JSImmediate::rightShiftImmediateNumbers(val, shift) ;5368 return JSImmediate::rightShiftImmediateNumbers(val, shift).payload(); 5369 5369 if (fastToInt32(val, left) && fastToUInt32(shift, right)) 5370 return jsNumber(ARG_globalData, left >> (right & 0x1f)) ;5370 return jsNumber(ARG_globalData, left >> (right & 0x1f)).payload(); 5371 5371 5372 5372 CallFrame* callFrame = ARG_callFrame; 5373 5373 JSValuePtr result = jsNumber(ARG_globalData, (val->toInt32(callFrame)) >> (shift->toUInt32(callFrame) & 0x1f)); 5374 5374 VM_CHECK_EXCEPTION_AT_END(); 5375 return result ;5376 } 5377 5378 JSValue PtrMachine::cti_op_bitnot(CTI_ARGS)5375 return result.payload(); 5376 } 5377 5378 JSValue* Machine::cti_op_bitnot(CTI_ARGS) 5379 5379 { 5380 5380 CTI_STACK_HACK(); … … 5384 5384 int value; 5385 5385 if (fastToInt32(src, value)) 5386 return jsNumber(ARG_globalData, ~value) ;5386 return jsNumber(ARG_globalData, ~value).payload(); 5387 5387 5388 5388 CallFrame* callFrame = ARG_callFrame; 5389 5389 JSValuePtr result = jsNumber(ARG_globalData, ~src->toInt32(callFrame)); 5390 5390 VM_CHECK_EXCEPTION_AT_END(); 5391 return result ;5391 return result.payload(); 5392 5392 } 5393 5393 … … 5428 5428 } 5429 5429 5430 JS ValuePtrMachine::cti_op_new_func_exp(CTI_ARGS)5430 JSObject* Machine::cti_op_new_func_exp(CTI_ARGS) 5431 5431 { 5432 5432 CTI_STACK_HACK(); … … 5435 5435 } 5436 5436 5437 JSValue PtrMachine::cti_op_mod(CTI_ARGS)5437 JSValue* Machine::cti_op_mod(CTI_ARGS) 5438 5438 { 5439 5439 CTI_STACK_HACK(); … … 5446 5446 JSValuePtr result = jsNumber(ARG_globalData, fmod(d, divisorValue->toNumber(callFrame))); 5447 5447 VM_CHECK_EXCEPTION_AT_END(); 5448 return result ;5449 } 5450 5451 JSValue PtrMachine::cti_op_less(CTI_ARGS)5448 return result.payload(); 5449 } 5450 5451 JSValue* Machine::cti_op_less(CTI_ARGS) 5452 5452 { 5453 5453 CTI_STACK_HACK(); … … 5456 5456 JSValuePtr result = jsBoolean(jsLess(callFrame, ARG_src1, ARG_src2)); 5457 5457 VM_CHECK_EXCEPTION_AT_END(); 5458 return result ;5459 } 5460 5461 JSValue PtrMachine::cti_op_neq(CTI_ARGS)5458 return result.payload(); 5459 } 5460 5461 JSValue* Machine::cti_op_neq(CTI_ARGS) 5462 5462 { 5463 5463 CTI_STACK_HACK(); … … 5471 5471 JSValuePtr result = jsBoolean(!equalSlowCaseInline(callFrame, src1, src2)); 5472 5472 VM_CHECK_EXCEPTION_AT_END(); 5473 return result ;5473 return result.payload(); 5474 5474 } 5475 5475 … … 5489 5489 } 5490 5490 5491 JSValue PtrMachine::cti_op_urshift(CTI_ARGS)5491 JSValue* Machine::cti_op_urshift(CTI_ARGS) 5492 5492 { 5493 5493 CTI_STACK_HACK(); … … 5499 5499 5500 5500 if (JSImmediate::areBothImmediateNumbers(val, shift) && !JSImmediate::isNegative(val)) 5501 return JSImmediate::rightShiftImmediateNumbers(val, shift) ;5501 return JSImmediate::rightShiftImmediateNumbers(val, shift).payload(); 5502 5502 else { 5503 5503 JSValuePtr result = jsNumber(ARG_globalData, (val->toUInt32(callFrame)) >> (shift->toUInt32(callFrame) & 0x1f)); 5504 5504 VM_CHECK_EXCEPTION_AT_END(); 5505 return result ;5506 } 5507 } 5508 5509 JSValue PtrMachine::cti_op_bitxor(CTI_ARGS)5505 return result.payload(); 5506 } 5507 } 5508 5509 JSValue* Machine::cti_op_bitxor(CTI_ARGS) 5510 5510 { 5511 5511 CTI_STACK_HACK(); … … 5518 5518 JSValuePtr result = jsNumber(ARG_globalData, src1->toInt32(callFrame) ^ src2->toInt32(callFrame)); 5519 5519 VM_CHECK_EXCEPTION_AT_END(); 5520 return result ;5521 } 5522 5523 JS ValuePtrMachine::cti_op_new_regexp(CTI_ARGS)5520 return result.payload(); 5521 } 5522 5523 JSObject* Machine::cti_op_new_regexp(CTI_ARGS) 5524 5524 { 5525 5525 CTI_STACK_HACK(); … … 5528 5528 } 5529 5529 5530 JSValue PtrMachine::cti_op_bitor(CTI_ARGS)5530 JSValue* Machine::cti_op_bitor(CTI_ARGS) 5531 5531 { 5532 5532 CTI_STACK_HACK(); … … 5539 5539 JSValuePtr result = jsNumber(ARG_globalData, src1->toInt32(callFrame) | src2->toInt32(callFrame)); 5540 5540 VM_CHECK_EXCEPTION_AT_END(); 5541 return result ;5542 } 5543 5544 JSValue PtrMachine::cti_op_call_eval(CTI_ARGS)5541 return result.payload(); 5542 } 5543 5544 JSValue* Machine::cti_op_call_eval(CTI_ARGS) 5545 5545 { 5546 5546 CTI_STACK_HACK(); … … 5566 5566 VM_THROW_EXCEPTION_AT_END(); 5567 5567 } 5568 return result ;5569 } 5570 5571 return JSImmediate::impossibleValue() ;5572 } 5573 5574 JSValue PtrMachine::cti_op_throw(CTI_ARGS)5568 return result.payload(); 5569 } 5570 5571 return JSImmediate::impossibleValue().payload(); 5572 } 5573 5574 JSValue* Machine::cti_op_throw(CTI_ARGS) 5575 5575 { 5576 5576 CTI_STACK_HACK(); … … 5589 5589 if (!handlerVPC) { 5590 5590 *ARG_exception = exceptionValue; 5591 return JSImmediate::nullImmediate() ;5591 return JSImmediate::nullImmediate().payload(); 5592 5592 } 5593 5593 … … 5596 5596 ASSERT(catchRoutine); 5597 5597 CTI_SET_RETURN_ADDRESS(catchRoutine); 5598 return exceptionValue ;5598 return exceptionValue.payload(); 5599 5599 } 5600 5600 … … 5606 5606 } 5607 5607 5608 JSValue PtrMachine::cti_op_next_pname(CTI_ARGS)5608 JSValue* Machine::cti_op_next_pname(CTI_ARGS) 5609 5609 { 5610 5610 CTI_STACK_HACK(); … … 5614 5614 if (!temp) 5615 5615 it->invalidate(); 5616 return temp ;5616 return temp.payload(); 5617 5617 } 5618 5618 … … 5633 5633 } 5634 5634 5635 JSValue PtrMachine::cti_op_typeof(CTI_ARGS)5636 { 5637 CTI_STACK_HACK(); 5638 5639 return jsTypeStringForValue(ARG_callFrame, ARG_src1) ;5640 } 5641 5642 JSValue PtrMachine::cti_op_is_undefined(CTI_ARGS)5635 JSValue* Machine::cti_op_typeof(CTI_ARGS) 5636 { 5637 CTI_STACK_HACK(); 5638 5639 return jsTypeStringForValue(ARG_callFrame, ARG_src1).payload(); 5640 } 5641 5642 JSValue* Machine::cti_op_is_undefined(CTI_ARGS) 5643 5643 { 5644 5644 CTI_STACK_HACK(); 5645 5645 5646 5646 JSValuePtr v = ARG_src1; 5647 return jsBoolean(JSImmediate::isImmediate(v) ? v->isUndefined() : v->asCell()->structureID()->typeInfo().masqueradesAsUndefined()) ;5648 } 5649 5650 JSValue PtrMachine::cti_op_is_boolean(CTI_ARGS)5651 { 5652 CTI_STACK_HACK(); 5653 5654 return jsBoolean(ARG_src1->isBoolean()) ;5655 } 5656 5657 JSValue PtrMachine::cti_op_is_number(CTI_ARGS)5658 { 5659 CTI_STACK_HACK(); 5660 5661 return jsBoolean(ARG_src1->isNumber()) ;5662 } 5663 5664 JSValue PtrMachine::cti_op_is_string(CTI_ARGS)5665 { 5666 CTI_STACK_HACK(); 5667 5668 return jsBoolean(ARG_globalData->machine->isJSString(ARG_src1)) ;5669 } 5670 5671 JSValue PtrMachine::cti_op_is_object(CTI_ARGS)5672 { 5673 CTI_STACK_HACK(); 5674 5675 return jsBoolean(jsIsObjectType(ARG_src1)) ;5676 } 5677 5678 JSValue PtrMachine::cti_op_is_function(CTI_ARGS)5679 { 5680 CTI_STACK_HACK(); 5681 5682 return jsBoolean(jsIsFunctionType(ARG_src1)) ;5683 } 5684 5685 JSValue PtrMachine::cti_op_stricteq(CTI_ARGS)5647 return jsBoolean(JSImmediate::isImmediate(v) ? v->isUndefined() : v->asCell()->structureID()->typeInfo().masqueradesAsUndefined()).payload(); 5648 } 5649 5650 JSValue* Machine::cti_op_is_boolean(CTI_ARGS) 5651 { 5652 CTI_STACK_HACK(); 5653 5654 return jsBoolean(ARG_src1->isBoolean()).payload(); 5655 } 5656 5657 JSValue* Machine::cti_op_is_number(CTI_ARGS) 5658 { 5659 CTI_STACK_HACK(); 5660 5661 return jsBoolean(ARG_src1->isNumber()).payload(); 5662 } 5663 5664 JSValue* Machine::cti_op_is_string(CTI_ARGS) 5665 { 5666 CTI_STACK_HACK(); 5667 5668 return jsBoolean(ARG_globalData->machine->isJSString(ARG_src1)).payload(); 5669 } 5670 5671 JSValue* Machine::cti_op_is_object(CTI_ARGS) 5672 { 5673 CTI_STACK_HACK(); 5674 5675 return jsBoolean(jsIsObjectType(ARG_src1)).payload(); 5676 } 5677 5678 JSValue* Machine::cti_op_is_function(CTI_ARGS) 5679 { 5680 CTI_STACK_HACK(); 5681 5682 return jsBoolean(jsIsFunctionType(ARG_src1)).payload(); 5683 } 5684 5685 JSValue* Machine::cti_op_stricteq(CTI_ARGS) 5686 5686 { 5687 5687 CTI_STACK_HACK(); … … 5694 5694 ASSERT(!(JSImmediate::isEitherImmediate(src1, src2) & (src1 != JSImmediate::zeroImmediate()) & (src2 != JSImmediate::zeroImmediate()))); 5695 5695 5696 return jsBoolean(strictEqualSlowCaseInline(src1, src2)) ;5697 } 5698 5699 JSValue PtrMachine::cti_op_nstricteq(CTI_ARGS)5696 return jsBoolean(strictEqualSlowCaseInline(src1, src2)).payload(); 5697 } 5698 5699 JSValue* Machine::cti_op_nstricteq(CTI_ARGS) 5700 5700 { 5701 5701 CTI_STACK_HACK(); … … 5708 5708 ASSERT(!(JSImmediate::isEitherImmediate(src1, src2) & (src1 != JSImmediate::zeroImmediate()) & (src2 != JSImmediate::zeroImmediate()))); 5709 5709 5710 return jsBoolean(!strictEqualSlowCaseInline(src1, src2)) ;5711 } 5712 5713 JSValue PtrMachine::cti_op_to_jsnumber(CTI_ARGS)5710 return jsBoolean(!strictEqualSlowCaseInline(src1, src2)).payload(); 5711 } 5712 5713 JSValue* Machine::cti_op_to_jsnumber(CTI_ARGS) 5714 5714 { 5715 5715 CTI_STACK_HACK(); … … 5720 5720 JSValuePtr result = src->toJSNumber(callFrame); 5721 5721 VM_CHECK_EXCEPTION_AT_END(); 5722 return result ;5723 } 5724 5725 JSValue PtrMachine::cti_op_in(CTI_ARGS)5722 return result.payload(); 5723 } 5724 5725 JSValue* Machine::cti_op_in(CTI_ARGS) 5726 5726 { 5727 5727 CTI_STACK_HACK(); … … 5744 5744 uint32_t i; 5745 5745 if (propName->getUInt32(i)) 5746 return jsBoolean(baseObj->hasProperty(callFrame, i)) ;5746 return jsBoolean(baseObj->hasProperty(callFrame, i)).payload(); 5747 5747 5748 5748 Identifier property(callFrame, propName->toString(callFrame)); 5749 5749 VM_CHECK_EXCEPTION(); 5750 return jsBoolean(baseObj->hasProperty(callFrame, property)) ;5751 } 5752 5753 JS ValuePtrMachine::cti_op_push_new_scope(CTI_ARGS)5750 return jsBoolean(baseObj->hasProperty(callFrame, property)).payload(); 5751 } 5752 5753 JSObject* Machine::cti_op_push_new_scope(CTI_ARGS) 5754 5754 { 5755 5755 CTI_STACK_HACK(); … … 5841 5841 } 5842 5842 5843 JSValue PtrMachine::cti_op_del_by_val(CTI_ARGS)5843 JSValue* Machine::cti_op_del_by_val(CTI_ARGS) 5844 5844 { 5845 5845 CTI_STACK_HACK(); … … 5863 5863 5864 5864 VM_CHECK_EXCEPTION_AT_END(); 5865 return result ;5865 return result.payload(); 5866 5866 } 5867 5867 … … 5892 5892 } 5893 5893 5894 JS ValuePtrMachine::cti_op_new_error(CTI_ARGS)5894 JSObject* Machine::cti_op_new_error(CTI_ARGS) 5895 5895 { 5896 5896 CTI_STACK_HACK(); … … 5918 5918 } 5919 5919 5920 JSValue PtrMachine::cti_vm_throw(CTI_ARGS)5920 JSValue* Machine::cti_vm_throw(CTI_ARGS) 5921 5921 { 5922 5922 CTI_STACK_HACK(); … … 5936 5936 if (!handlerVPC) { 5937 5937 *ARG_exception = exceptionValue; 5938 return JSImmediate::nullImmediate() ;5938 return JSImmediate::nullImmediate().payload(); 5939 5939 } 5940 5940 … … 5943 5943 ASSERT(catchRoutine); 5944 5944 CTI_SET_RETURN_ADDRESS(catchRoutine); 5945 return exceptionValue ;5945 return exceptionValue.payload(); 5946 5946 } 5947 5947
Note:
See TracChangeset
for help on using the changeset viewer.