Changeset 11527 in webkit for trunk/JavaScriptCore/kjs/nodes.cpp
- Timestamp:
- Dec 10, 2005, 6:06:17 PM (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/kjs/nodes.cpp
r11525 r11527 61 61 if (exec->hadException()) { \ 62 62 setExceptionDetailsIfNeeded(exec); \ 63 ValueImp*ex = exec->exception(); \63 JSValue *ex = exec->exception(); \ 64 64 exec->clearException(); \ 65 65 return Completion(Throw, ex); \ … … 117 117 } 118 118 119 ValueImp*Node::throwError(ExecState *exec, ErrorType e, const char *msg)119 JSValue *Node::throwError(ExecState *exec, ErrorType e, const char *msg) 120 120 { 121 121 return KJS::throwError(exec, e, msg, lineNo(), sourceId(), &sourceURL); 122 122 } 123 123 124 ValueImp *Node::throwError(ExecState *exec, ErrorType e, const char *msg, ValueImp*v, Node *expr)124 JSValue *Node::throwError(ExecState *exec, ErrorType e, const char *msg, JSValue *v, Node *expr) 125 125 { 126 126 UString message = msg; … … 131 131 132 132 133 ValueImp*Node::throwError(ExecState *exec, ErrorType e, const char *msg, const Identifier &label)133 JSValue *Node::throwError(ExecState *exec, ErrorType e, const char *msg, const Identifier &label) 134 134 { 135 135 UString message = msg; … … 138 138 } 139 139 140 ValueImp *Node::throwError(ExecState *exec, ErrorType e, const char *msg, ValueImp*v, Node *e1, Node *e2)140 JSValue *Node::throwError(ExecState *exec, ErrorType e, const char *msg, JSValue *v, Node *e1, Node *e2) 141 141 { 142 142 UString message = msg; … … 147 147 } 148 148 149 ValueImp *Node::throwError(ExecState *exec, ErrorType e, const char *msg, ValueImp*v, Node *expr, const Identifier &label)149 JSValue *Node::throwError(ExecState *exec, ErrorType e, const char *msg, JSValue *v, Node *expr, const Identifier &label) 150 150 { 151 151 UString message = msg; … … 156 156 } 157 157 158 ValueImp *Node::throwError(ExecState *exec, ErrorType e, const char *msg, ValueImp*v, const Identifier &label)158 JSValue *Node::throwError(ExecState *exec, ErrorType e, const char *msg, JSValue *v, const Identifier &label) 159 159 { 160 160 UString message = msg; … … 164 164 } 165 165 166 ValueImp*Node::throwUndefinedVariableError(ExecState *exec, const Identifier &ident)166 JSValue *Node::throwUndefinedVariableError(ExecState *exec, const Identifier &ident) 167 167 { 168 168 return throwError(exec, ReferenceError, "Can't find variable: %s", ident); … … 171 171 void Node::setExceptionDetailsIfNeeded(ExecState *exec) 172 172 { 173 ValueImp*exceptionValue = exec->exception();173 JSValue *exceptionValue = exec->exception(); 174 174 if (exceptionValue->isObject()) { 175 ObjectImp *exception = static_cast<ObjectImp*>(exceptionValue);175 JSObject *exception = static_cast<JSObject *>(exceptionValue); 176 176 if (!exception->hasProperty(exec, "line") && !exception->hasProperty(exec, "sourceURL")) { 177 177 exception->put(exec, "line", jsNumber(line)); … … 215 215 // ------------------------------ NullNode ------------------------------------- 216 216 217 ValueImp*NullNode::evaluate(ExecState *)217 JSValue *NullNode::evaluate(ExecState *) 218 218 { 219 219 return jsNull(); … … 222 222 // ------------------------------ BooleanNode ---------------------------------- 223 223 224 ValueImp*BooleanNode::evaluate(ExecState *)224 JSValue *BooleanNode::evaluate(ExecState *) 225 225 { 226 226 return jsBoolean(value); … … 229 229 // ------------------------------ NumberNode ----------------------------------- 230 230 231 ValueImp*NumberNode::evaluate(ExecState *)231 JSValue *NumberNode::evaluate(ExecState *) 232 232 { 233 233 return jsNumber(value); … … 236 236 // ------------------------------ StringNode ----------------------------------- 237 237 238 ValueImp*StringNode::evaluate(ExecState *)238 JSValue *StringNode::evaluate(ExecState *) 239 239 { 240 240 return jsString(value); … … 243 243 // ------------------------------ RegExpNode ----------------------------------- 244 244 245 ValueImp*RegExpNode::evaluate(ExecState *exec)245 JSValue *RegExpNode::evaluate(ExecState *exec) 246 246 { 247 247 List list; … … 249 249 list.append(jsString(flags)); 250 250 251 ObjectImp*reg = exec->lexicalInterpreter()->imp()->builtinRegExp();251 JSObject *reg = exec->lexicalInterpreter()->imp()->builtinRegExp(); 252 252 return reg->construct(exec,list); 253 253 } … … 256 256 257 257 // ECMA 11.1.1 258 ValueImp*ThisNode::evaluate(ExecState *exec)258 JSValue *ThisNode::evaluate(ExecState *exec) 259 259 { 260 260 return exec->context().imp()->thisValue(); … … 264 264 265 265 // ECMA 11.1.2 & 10.1.4 266 ValueImp*ResolveNode::evaluate(ExecState *exec)266 JSValue *ResolveNode::evaluate(ExecState *exec) 267 267 { 268 268 const ScopeChain& chain = exec->context().imp()->scopeChain(); … … 275 275 PropertySlot slot; 276 276 do { 277 ObjectImp*o = *iter;277 JSObject *o = *iter; 278 278 279 279 if (o->getPropertySlot(exec, ident, slot)) … … 289 289 290 290 // ECMA 11.1.6 291 ValueImp*GroupNode::evaluate(ExecState *exec)291 JSValue *GroupNode::evaluate(ExecState *exec) 292 292 { 293 293 return group->evaluate(exec); … … 306 306 307 307 // ECMA 11.1.4 308 ValueImp*ElementNode::evaluate(ExecState *exec)309 { 310 ObjectImp*array = exec->lexicalInterpreter()->builtinArray()->construct(exec, List::empty());308 JSValue *ElementNode::evaluate(ExecState *exec) 309 { 310 JSObject *array = exec->lexicalInterpreter()->builtinArray()->construct(exec, List::empty()); 311 311 int length = 0; 312 312 for (ElementNode *n = this; n; n = n->list.get()) { 313 ValueImp*val = n->node->evaluate(exec);313 JSValue *val = n->node->evaluate(exec); 314 314 KJS_CHECKEXCEPTIONVALUE 315 315 length += n->elision; … … 322 322 323 323 // ECMA 11.1.4 324 ValueImp*ArrayNode::evaluate(ExecState *exec)325 { 326 ObjectImp*array;324 JSValue *ArrayNode::evaluate(ExecState *exec) 325 { 326 JSObject *array; 327 327 int length; 328 328 329 329 if (element) { 330 array = static_cast< ObjectImp*>(element->evaluate(exec));330 array = static_cast<JSObject*>(element->evaluate(exec)); 331 331 KJS_CHECKEXCEPTIONVALUE 332 332 length = opt ? array->get(exec,lengthPropertyName)->toInt32(exec) : 0; 333 333 } else { 334 ValueImp*newArr = exec->lexicalInterpreter()->builtinArray()->construct(exec,List::empty());335 array = static_cast< ObjectImp*>(newArr);334 JSValue *newArr = exec->lexicalInterpreter()->builtinArray()->construct(exec,List::empty()); 335 array = static_cast<JSObject*>(newArr); 336 336 length = 0; 337 337 } … … 346 346 347 347 // ECMA 11.1.5 348 ValueImp*ObjectLiteralNode::evaluate(ExecState *exec)348 JSValue *ObjectLiteralNode::evaluate(ExecState *exec) 349 349 { 350 350 if (list) … … 357 357 358 358 // ECMA 11.1.5 359 ValueImp*PropertyValueNode::evaluate(ExecState *exec)360 { 361 ObjectImp*obj = exec->lexicalInterpreter()->builtinObject()->construct(exec, List::empty());359 JSValue *PropertyValueNode::evaluate(ExecState *exec) 360 { 361 JSObject *obj = exec->lexicalInterpreter()->builtinObject()->construct(exec, List::empty()); 362 362 363 363 for (PropertyValueNode *p = this; p; p = p->list.get()) { 364 ValueImp*n = p->name->evaluate(exec);364 JSValue *n = p->name->evaluate(exec); 365 365 KJS_CHECKEXCEPTIONVALUE 366 ValueImp*v = p->assign->evaluate(exec);366 JSValue *v = p->assign->evaluate(exec); 367 367 KJS_CHECKEXCEPTIONVALUE 368 368 … … 376 376 377 377 // ECMA 11.1.5 378 ValueImp*PropertyNode::evaluate(ExecState *)379 { 380 ValueImp*s;378 JSValue *PropertyNode::evaluate(ExecState *) 379 { 380 JSValue *s; 381 381 382 382 if (str.isNull()) { … … 392 392 393 393 // ECMA 11.2.1a 394 ValueImp*BracketAccessorNode::evaluate(ExecState *exec)395 { 396 ValueImp*v1 = expr1->evaluate(exec);397 KJS_CHECKEXCEPTIONVALUE 398 ValueImp*v2 = expr2->evaluate(exec);399 KJS_CHECKEXCEPTIONVALUE 400 ObjectImp*o = v1->toObject(exec);394 JSValue *BracketAccessorNode::evaluate(ExecState *exec) 395 { 396 JSValue *v1 = expr1->evaluate(exec); 397 KJS_CHECKEXCEPTIONVALUE 398 JSValue *v2 = expr2->evaluate(exec); 399 KJS_CHECKEXCEPTIONVALUE 400 JSObject *o = v1->toObject(exec); 401 401 uint32_t i; 402 402 if (v2->getUInt32(i)) … … 408 408 409 409 // ECMA 11.2.1b 410 ValueImp*DotAccessorNode::evaluate(ExecState *exec)411 { 412 ValueImp*v = expr->evaluate(exec);410 JSValue *DotAccessorNode::evaluate(ExecState *exec) 411 { 412 JSValue *v = expr->evaluate(exec); 413 413 KJS_CHECKEXCEPTIONVALUE 414 414 return v->toObject(exec)->get(exec, ident); … … 418 418 // ------------------------------ ArgumentListNode ----------------------------- 419 419 420 ValueImp*ArgumentListNode::evaluate(ExecState *)420 JSValue *ArgumentListNode::evaluate(ExecState *) 421 421 { 422 422 assert(0); … … 430 430 431 431 for (ArgumentListNode *n = this; n; n = n->list.get()) { 432 ValueImp*v = n->expr->evaluate(exec);432 JSValue *v = n->expr->evaluate(exec); 433 433 KJS_CHECKEXCEPTIONLIST 434 434 l.append(v); … … 440 440 // ------------------------------ ArgumentsNode -------------------------------- 441 441 442 ValueImp*ArgumentsNode::evaluate(ExecState *)442 JSValue *ArgumentsNode::evaluate(ExecState *) 443 443 { 444 444 assert(0); … … 459 459 // ECMA 11.2.2 460 460 461 ValueImp*NewExprNode::evaluate(ExecState *exec)462 { 463 ValueImp*v = expr->evaluate(exec);461 JSValue *NewExprNode::evaluate(ExecState *exec) 462 { 463 JSValue *v = expr->evaluate(exec); 464 464 KJS_CHECKEXCEPTIONVALUE 465 465 … … 474 474 } 475 475 476 ObjectImp *constr = static_cast<ObjectImp*>(v);476 JSObject *constr = static_cast<JSObject*>(v); 477 477 if (!constr->implementsConstruct()) { 478 478 return throwError(exec, TypeError, "Value %s (result of expression %s) is not a constructor. Cannot be used with new.", v, expr.get()); … … 483 483 484 484 // ECMA 11.2.3 485 ValueImp*FunctionCallValueNode::evaluate(ExecState *exec)486 { 487 ValueImp*v = expr->evaluate(exec);485 JSValue *FunctionCallValueNode::evaluate(ExecState *exec) 486 { 487 JSValue *v = expr->evaluate(exec); 488 488 KJS_CHECKEXCEPTIONVALUE 489 489 … … 492 492 } 493 493 494 ObjectImp *func = static_cast<ObjectImp*>(v);494 JSObject *func = static_cast<JSObject*>(v); 495 495 496 496 if (!func->implementsCall()) { … … 501 501 KJS_CHECKEXCEPTIONVALUE 502 502 503 ObjectImp*thisObj = exec->dynamicInterpreter()->globalObject();503 JSObject *thisObj = exec->dynamicInterpreter()->globalObject(); 504 504 505 505 return func->call(exec, thisObj, argList); … … 507 507 508 508 // ECMA 11.2.3 509 ValueImp*FunctionCallResolveNode::evaluate(ExecState *exec)509 JSValue *FunctionCallResolveNode::evaluate(ExecState *exec) 510 510 { 511 511 const ScopeChain& chain = exec->context().imp()->scopeChain(); … … 517 517 518 518 PropertySlot slot; 519 ObjectImp*base;519 JSObject *base; 520 520 do { 521 521 base = *iter; 522 522 if (base->getPropertySlot(exec, ident, slot)) { 523 ValueImp*v = slot.getValue(exec, ident);523 JSValue *v = slot.getValue(exec, ident); 524 524 KJS_CHECKEXCEPTIONVALUE 525 525 … … 528 528 } 529 529 530 ObjectImp *func = static_cast<ObjectImp*>(v);530 JSObject *func = static_cast<JSObject*>(v); 531 531 532 532 if (!func->implementsCall()) { … … 537 537 KJS_CHECKEXCEPTIONVALUE 538 538 539 ObjectImp*thisObj = base;539 JSObject *thisObj = base; 540 540 // ECMA 11.2.3 says that in this situation the this value should be null. 541 541 // However, section 10.2.3 says that in the case where the value provided … … 556 556 557 557 // ECMA 11.2.3 558 ValueImp*FunctionCallBracketNode::evaluate(ExecState *exec)559 { 560 ValueImp*baseVal = base->evaluate(exec);561 KJS_CHECKEXCEPTIONVALUE 562 563 ValueImp*subscriptVal = subscript->evaluate(exec);564 565 ObjectImp*baseObj = baseVal->toObject(exec);558 JSValue *FunctionCallBracketNode::evaluate(ExecState *exec) 559 { 560 JSValue *baseVal = base->evaluate(exec); 561 KJS_CHECKEXCEPTIONVALUE 562 563 JSValue *subscriptVal = subscript->evaluate(exec); 564 565 JSObject *baseObj = baseVal->toObject(exec); 566 566 uint32_t i; 567 567 PropertySlot slot; 568 568 569 ValueImp*funcVal;569 JSValue *funcVal; 570 570 if (subscriptVal->getUInt32(i)) { 571 571 if (baseObj->getPropertySlot(exec, i, slot)) … … 587 587 } 588 588 589 ObjectImp *func = static_cast<ObjectImp*>(funcVal);589 JSObject *func = static_cast<JSObject*>(funcVal); 590 590 591 591 if (!func->implementsCall()) { … … 596 596 KJS_CHECKEXCEPTIONVALUE 597 597 598 ObjectImp*thisObj = baseObj;598 JSObject *thisObj = baseObj; 599 599 assert(thisObj); 600 600 assert(thisObj->isObject()); … … 615 615 616 616 // ECMA 11.2.3 617 ValueImp*FunctionCallDotNode::evaluate(ExecState *exec)618 { 619 ValueImp*baseVal = base->evaluate(exec);620 621 ObjectImp*baseObj = baseVal->toObject(exec);617 JSValue *FunctionCallDotNode::evaluate(ExecState *exec) 618 { 619 JSValue *baseVal = base->evaluate(exec); 620 621 JSObject *baseObj = baseVal->toObject(exec); 622 622 PropertySlot slot; 623 ValueImp*funcVal = baseObj->getPropertySlot(exec, ident, slot) ? slot.getValue(exec, ident) : jsUndefined();623 JSValue *funcVal = baseObj->getPropertySlot(exec, ident, slot) ? slot.getValue(exec, ident) : jsUndefined(); 624 624 KJS_CHECKEXCEPTIONVALUE 625 625 … … 627 627 return throwError(exec, TypeError, dotExprNotAnObjectString(), funcVal, base.get(), ident); 628 628 629 ObjectImp *func = static_cast<ObjectImp*>(funcVal);629 JSObject *func = static_cast<JSObject*>(funcVal); 630 630 631 631 if (!func->implementsCall()) … … 635 635 KJS_CHECKEXCEPTIONVALUE 636 636 637 ObjectImp*thisObj = baseObj;637 JSObject *thisObj = baseObj; 638 638 assert(thisObj); 639 639 assert(thisObj->isObject()); … … 647 647 // ------------------------------ PostfixResolveNode ---------------------------------- 648 648 649 ValueImp*PostfixResolveNode::evaluate(ExecState *exec)649 JSValue *PostfixResolveNode::evaluate(ExecState *exec) 650 650 { 651 651 const ScopeChain& chain = exec->context().imp()->scopeChain(); … … 657 657 658 658 PropertySlot slot; 659 ObjectImp*base;659 JSObject *base; 660 660 do { 661 661 base = *iter; 662 662 if (base->getPropertySlot(exec, m_ident, slot)) { 663 ValueImp*v = slot.getValue(exec, m_ident);663 JSValue *v = slot.getValue(exec, m_ident); 664 664 665 665 double n = v->toNumber(exec); … … 679 679 // ------------------------------ PostfixBracketNode ---------------------------------- 680 680 681 ValueImp*PostfixBracketNode::evaluate(ExecState *exec)682 { 683 ValueImp*baseValue = m_base->evaluate(exec);684 KJS_CHECKEXCEPTIONVALUE 685 ValueImp*subscript = m_subscript->evaluate(exec);686 KJS_CHECKEXCEPTIONVALUE 687 688 ObjectImp*base = baseValue->toObject(exec);681 JSValue *PostfixBracketNode::evaluate(ExecState *exec) 682 { 683 JSValue *baseValue = m_base->evaluate(exec); 684 KJS_CHECKEXCEPTIONVALUE 685 JSValue *subscript = m_subscript->evaluate(exec); 686 KJS_CHECKEXCEPTIONVALUE 687 688 JSObject *base = baseValue->toObject(exec); 689 689 690 690 uint32_t propertyIndex; 691 691 if (subscript->getUInt32(propertyIndex)) { 692 692 PropertySlot slot; 693 ValueImp*v = base->getPropertySlot(exec, propertyIndex, slot) ? slot.getValue(exec, propertyIndex) : jsUndefined();693 JSValue *v = base->getPropertySlot(exec, propertyIndex, slot) ? slot.getValue(exec, propertyIndex) : jsUndefined(); 694 694 KJS_CHECKEXCEPTIONVALUE 695 695 … … 704 704 Identifier propertyName(subscript->toString(exec)); 705 705 PropertySlot slot; 706 ValueImp*v = base->getPropertySlot(exec, propertyName, slot) ? slot.getValue(exec, propertyName) : jsUndefined();706 JSValue *v = base->getPropertySlot(exec, propertyName, slot) ? slot.getValue(exec, propertyName) : jsUndefined(); 707 707 KJS_CHECKEXCEPTIONVALUE 708 708 … … 717 717 // ------------------------------ PostfixDotNode ---------------------------------- 718 718 719 ValueImp*PostfixDotNode::evaluate(ExecState *exec)720 { 721 ValueImp*baseValue = m_base->evaluate(exec);722 KJS_CHECKEXCEPTIONVALUE 723 ObjectImp*base = baseValue->toObject(exec);719 JSValue *PostfixDotNode::evaluate(ExecState *exec) 720 { 721 JSValue *baseValue = m_base->evaluate(exec); 722 KJS_CHECKEXCEPTIONVALUE 723 JSObject *base = baseValue->toObject(exec); 724 724 725 725 PropertySlot slot; 726 ValueImp*v = base->getPropertySlot(exec, m_ident, slot) ? slot.getValue(exec, m_ident) : jsUndefined();726 JSValue *v = base->getPropertySlot(exec, m_ident, slot) ? slot.getValue(exec, m_ident) : jsUndefined(); 727 727 KJS_CHECKEXCEPTIONVALUE 728 728 … … 738 738 739 739 // ------------------------------ DeleteResolveNode ----------------------------------- 740 ValueImp*DeleteResolveNode::evaluate(ExecState *exec)740 JSValue *DeleteResolveNode::evaluate(ExecState *exec) 741 741 { 742 742 const ScopeChain& chain = exec->context().imp()->scopeChain(); … … 748 748 749 749 PropertySlot slot; 750 ObjectImp*base;750 JSObject *base; 751 751 do { 752 752 base = *iter; … … 762 762 763 763 // ------------------------------ DeleteBracketNode ----------------------------------- 764 ValueImp*DeleteBracketNode::evaluate(ExecState *exec)765 { 766 ValueImp*baseValue = m_base->evaluate(exec);767 KJS_CHECKEXCEPTIONVALUE 768 ValueImp*subscript = m_subscript->evaluate(exec);769 KJS_CHECKEXCEPTIONVALUE 770 771 ObjectImp*base = baseValue->toObject(exec);764 JSValue *DeleteBracketNode::evaluate(ExecState *exec) 765 { 766 JSValue *baseValue = m_base->evaluate(exec); 767 KJS_CHECKEXCEPTIONVALUE 768 JSValue *subscript = m_subscript->evaluate(exec); 769 KJS_CHECKEXCEPTIONVALUE 770 771 JSObject *base = baseValue->toObject(exec); 772 772 773 773 uint32_t propertyIndex; … … 780 780 781 781 // ------------------------------ DeleteDotNode ----------------------------------- 782 ValueImp*DeleteDotNode::evaluate(ExecState *exec)783 { 784 ValueImp*baseValue = m_base->evaluate(exec);785 ObjectImp*base = baseValue->toObject(exec);782 JSValue *DeleteDotNode::evaluate(ExecState *exec) 783 { 784 JSValue *baseValue = m_base->evaluate(exec); 785 JSObject *base = baseValue->toObject(exec); 786 786 KJS_CHECKEXCEPTIONVALUE 787 787 … … 790 790 791 791 // ------------------------------ DeleteValueNode ----------------------------------- 792 ValueImp*DeleteValueNode::evaluate(ExecState *exec)792 JSValue *DeleteValueNode::evaluate(ExecState *exec) 793 793 { 794 794 m_expr->evaluate(exec); … … 802 802 803 803 // ECMA 11.4.2 804 ValueImp*VoidNode::evaluate(ExecState *exec)804 JSValue *VoidNode::evaluate(ExecState *exec) 805 805 { 806 806 expr->evaluate(exec); … … 814 814 // ------------------------------ TypeOfValueNode ----------------------------------- 815 815 816 static ValueImp *typeStringForValue(ValueImp*v)816 static JSValue *typeStringForValue(JSValue *v) 817 817 { 818 818 switch (v->type()) { … … 828 828 return jsString("string"); 829 829 default: 830 if (v->isObject() && static_cast< ObjectImp*>(v)->implementsCall())830 if (v->isObject() && static_cast<JSObject*>(v)->implementsCall()) 831 831 return jsString("function"); 832 832 else … … 835 835 } 836 836 837 ValueImp*TypeOfResolveNode::evaluate(ExecState *exec)837 JSValue *TypeOfResolveNode::evaluate(ExecState *exec) 838 838 { 839 839 const ScopeChain& chain = exec->context().imp()->scopeChain(); … … 845 845 846 846 PropertySlot slot; 847 ObjectImp*base;847 JSObject *base; 848 848 do { 849 849 base = *iter; 850 850 if (base->getPropertySlot(exec, m_ident, slot)) { 851 ValueImp*v = slot.getValue(exec, m_ident);851 JSValue *v = slot.getValue(exec, m_ident); 852 852 return typeStringForValue(v); 853 853 } … … 861 861 // ------------------------------ TypeOfValueNode ----------------------------------- 862 862 863 ValueImp*TypeOfValueNode::evaluate(ExecState *exec)864 { 865 ValueImp*v = m_expr->evaluate(exec);863 JSValue *TypeOfValueNode::evaluate(ExecState *exec) 864 { 865 JSValue *v = m_expr->evaluate(exec); 866 866 KJS_CHECKEXCEPTIONVALUE 867 867 … … 873 873 // ------------------------------ PrefixResolveNode ---------------------------------- 874 874 875 ValueImp*PrefixResolveNode::evaluate(ExecState *exec)875 JSValue *PrefixResolveNode::evaluate(ExecState *exec) 876 876 { 877 877 const ScopeChain& chain = exec->context().imp()->scopeChain(); … … 883 883 884 884 PropertySlot slot; 885 ObjectImp*base;885 JSObject *base; 886 886 do { 887 887 base = *iter; 888 888 if (base->getPropertySlot(exec, m_ident, slot)) { 889 ValueImp*v = slot.getValue(exec, m_ident);889 JSValue *v = slot.getValue(exec, m_ident); 890 890 891 891 double n = v->toNumber(exec); 892 892 893 893 double newValue = (m_oper == OpPlusPlus) ? n + 1 : n - 1; 894 ValueImp*n2 = jsNumber(newValue);894 JSValue *n2 = jsNumber(newValue); 895 895 base->put(exec, m_ident, n2); 896 896 … … 906 906 // ------------------------------ PrefixBracketNode ---------------------------------- 907 907 908 ValueImp*PrefixBracketNode::evaluate(ExecState *exec)909 { 910 ValueImp*baseValue = m_base->evaluate(exec);911 KJS_CHECKEXCEPTIONVALUE 912 ValueImp*subscript = m_subscript->evaluate(exec);913 KJS_CHECKEXCEPTIONVALUE 914 915 ObjectImp*base = baseValue->toObject(exec);908 JSValue *PrefixBracketNode::evaluate(ExecState *exec) 909 { 910 JSValue *baseValue = m_base->evaluate(exec); 911 KJS_CHECKEXCEPTIONVALUE 912 JSValue *subscript = m_subscript->evaluate(exec); 913 KJS_CHECKEXCEPTIONVALUE 914 915 JSObject *base = baseValue->toObject(exec); 916 916 917 917 uint32_t propertyIndex; 918 918 if (subscript->getUInt32(propertyIndex)) { 919 919 PropertySlot slot; 920 ValueImp*v = base->getPropertySlot(exec, propertyIndex, slot) ? slot.getValue(exec, propertyIndex) : jsUndefined();920 JSValue *v = base->getPropertySlot(exec, propertyIndex, slot) ? slot.getValue(exec, propertyIndex) : jsUndefined(); 921 921 KJS_CHECKEXCEPTIONVALUE 922 922 … … 924 924 925 925 double newValue = (m_oper == OpPlusPlus) ? n + 1 : n - 1; 926 ValueImp*n2 = jsNumber(newValue);926 JSValue *n2 = jsNumber(newValue); 927 927 base->put(exec, propertyIndex, n2); 928 928 … … 932 932 Identifier propertyName(subscript->toString(exec)); 933 933 PropertySlot slot; 934 ValueImp*v = base->getPropertySlot(exec, propertyName, slot) ? slot.getValue(exec, propertyName) : jsUndefined();934 JSValue *v = base->getPropertySlot(exec, propertyName, slot) ? slot.getValue(exec, propertyName) : jsUndefined(); 935 935 KJS_CHECKEXCEPTIONVALUE 936 936 … … 938 938 939 939 double newValue = (m_oper == OpPlusPlus) ? n + 1 : n - 1; 940 ValueImp*n2 = jsNumber(newValue);940 JSValue *n2 = jsNumber(newValue); 941 941 base->put(exec, propertyName, n2); 942 942 … … 946 946 // ------------------------------ PrefixDotNode ---------------------------------- 947 947 948 ValueImp*PrefixDotNode::evaluate(ExecState *exec)949 { 950 ValueImp*baseValue = m_base->evaluate(exec);951 KJS_CHECKEXCEPTIONVALUE 952 ObjectImp*base = baseValue->toObject(exec);948 JSValue *PrefixDotNode::evaluate(ExecState *exec) 949 { 950 JSValue *baseValue = m_base->evaluate(exec); 951 KJS_CHECKEXCEPTIONVALUE 952 JSObject *base = baseValue->toObject(exec); 953 953 954 954 PropertySlot slot; 955 ValueImp*v = base->getPropertySlot(exec, m_ident, slot) ? slot.getValue(exec, m_ident) : jsUndefined();955 JSValue *v = base->getPropertySlot(exec, m_ident, slot) ? slot.getValue(exec, m_ident) : jsUndefined(); 956 956 KJS_CHECKEXCEPTIONVALUE 957 957 … … 959 959 960 960 double newValue = (m_oper == OpPlusPlus) ? n + 1 : n - 1; 961 ValueImp*n2 = jsNumber(newValue);961 JSValue *n2 = jsNumber(newValue); 962 962 base->put(exec, m_ident, n2); 963 963 … … 968 968 969 969 // ECMA 11.4.6 970 ValueImp*UnaryPlusNode::evaluate(ExecState *exec)971 { 972 ValueImp*v = expr->evaluate(exec);970 JSValue *UnaryPlusNode::evaluate(ExecState *exec) 971 { 972 JSValue *v = expr->evaluate(exec); 973 973 KJS_CHECKEXCEPTIONVALUE 974 974 … … 979 979 980 980 // ECMA 11.4.7 981 ValueImp*NegateNode::evaluate(ExecState *exec)982 { 983 ValueImp*v = expr->evaluate(exec);981 JSValue *NegateNode::evaluate(ExecState *exec) 982 { 983 JSValue *v = expr->evaluate(exec); 984 984 KJS_CHECKEXCEPTIONVALUE 985 985 … … 991 991 992 992 // ECMA 11.4.8 993 ValueImp*BitwiseNotNode::evaluate(ExecState *exec)994 { 995 ValueImp*v = expr->evaluate(exec);993 JSValue *BitwiseNotNode::evaluate(ExecState *exec) 994 { 995 JSValue *v = expr->evaluate(exec); 996 996 KJS_CHECKEXCEPTIONVALUE 997 997 return jsNumber(~v->toInt32(exec)); … … 1001 1001 1002 1002 // ECMA 11.4.9 1003 ValueImp*LogicalNotNode::evaluate(ExecState *exec)1004 { 1005 ValueImp*v = expr->evaluate(exec);1003 JSValue *LogicalNotNode::evaluate(ExecState *exec) 1004 { 1005 JSValue *v = expr->evaluate(exec); 1006 1006 KJS_CHECKEXCEPTIONVALUE 1007 1007 return jsBoolean(!v->toBoolean(exec)); … … 1011 1011 1012 1012 // ECMA 11.5 1013 ValueImp*MultNode::evaluate(ExecState *exec)1014 { 1015 ValueImp*v1 = term1->evaluate(exec);1016 KJS_CHECKEXCEPTIONVALUE 1017 1018 ValueImp*v2 = term2->evaluate(exec);1013 JSValue *MultNode::evaluate(ExecState *exec) 1014 { 1015 JSValue *v1 = term1->evaluate(exec); 1016 KJS_CHECKEXCEPTIONVALUE 1017 1018 JSValue *v2 = term2->evaluate(exec); 1019 1019 KJS_CHECKEXCEPTIONVALUE 1020 1020 … … 1025 1025 1026 1026 // ECMA 11.6 1027 ValueImp*AddNode::evaluate(ExecState *exec)1028 { 1029 ValueImp*v1 = term1->evaluate(exec);1030 KJS_CHECKEXCEPTIONVALUE 1031 1032 ValueImp*v2 = term2->evaluate(exec);1027 JSValue *AddNode::evaluate(ExecState *exec) 1028 { 1029 JSValue *v1 = term1->evaluate(exec); 1030 KJS_CHECKEXCEPTIONVALUE 1031 1032 JSValue *v2 = term2->evaluate(exec); 1033 1033 KJS_CHECKEXCEPTIONVALUE 1034 1034 … … 1039 1039 1040 1040 // ECMA 11.7 1041 ValueImp*ShiftNode::evaluate(ExecState *exec)1042 { 1043 ValueImp*v1 = term1->evaluate(exec);1044 KJS_CHECKEXCEPTIONVALUE 1045 ValueImp*v2 = term2->evaluate(exec);1041 JSValue *ShiftNode::evaluate(ExecState *exec) 1042 { 1043 JSValue *v1 = term1->evaluate(exec); 1044 KJS_CHECKEXCEPTIONVALUE 1045 JSValue *v2 = term2->evaluate(exec); 1046 1046 KJS_CHECKEXCEPTIONVALUE 1047 1047 unsigned int i2 = v2->toUInt32(exec); … … 1064 1064 1065 1065 // ECMA 11.8 1066 ValueImp*RelationalNode::evaluate(ExecState *exec)1067 { 1068 ValueImp*v1 = expr1->evaluate(exec);1069 KJS_CHECKEXCEPTIONVALUE 1070 ValueImp*v2 = expr2->evaluate(exec);1066 JSValue *RelationalNode::evaluate(ExecState *exec) 1067 { 1068 JSValue *v1 = expr1->evaluate(exec); 1069 KJS_CHECKEXCEPTIONVALUE 1070 JSValue *v2 = expr2->evaluate(exec); 1071 1071 KJS_CHECKEXCEPTIONVALUE 1072 1072 … … 1089 1089 return throwError(exec, TypeError, 1090 1090 "Value %s (result of expression %s) is not an object. Cannot be used with IN expression.", v2, expr2.get()); 1091 ObjectImp *o2(static_cast<ObjectImp*>(v2));1091 JSObject *o2(static_cast<JSObject*>(v2)); 1092 1092 b = o2->hasProperty(exec, Identifier(v1->toString(exec))); 1093 1093 } else { … … 1096 1096 "Value %s (result of expression %s) is not an object. Cannot be used with instanceof operator.", v2, expr2.get()); 1097 1097 1098 ObjectImp *o2(static_cast<ObjectImp*>(v2));1098 JSObject *o2(static_cast<JSObject*>(v2)); 1099 1099 if (!o2->implementsHasInstance()) { 1100 1100 // According to the spec, only some types of objects "implement" the [[HasInstance]] property. … … 1115 1115 1116 1116 // ECMA 11.9 1117 ValueImp*EqualNode::evaluate(ExecState *exec)1118 { 1119 ValueImp*v1 = expr1->evaluate(exec);1120 KJS_CHECKEXCEPTIONVALUE 1121 ValueImp*v2 = expr2->evaluate(exec);1117 JSValue *EqualNode::evaluate(ExecState *exec) 1118 { 1119 JSValue *v1 = expr1->evaluate(exec); 1120 KJS_CHECKEXCEPTIONVALUE 1121 JSValue *v2 = expr2->evaluate(exec); 1122 1122 KJS_CHECKEXCEPTIONVALUE 1123 1123 … … 1138 1138 1139 1139 // ECMA 11.10 1140 ValueImp*BitOperNode::evaluate(ExecState *exec)1141 { 1142 ValueImp*v1 = expr1->evaluate(exec);1143 KJS_CHECKEXCEPTIONVALUE 1144 ValueImp*v2 = expr2->evaluate(exec);1140 JSValue *BitOperNode::evaluate(ExecState *exec) 1141 { 1142 JSValue *v1 = expr1->evaluate(exec); 1143 KJS_CHECKEXCEPTIONVALUE 1144 JSValue *v2 = expr2->evaluate(exec); 1145 1145 KJS_CHECKEXCEPTIONVALUE 1146 1146 int i1 = v1->toInt32(exec); … … 1160 1160 1161 1161 // ECMA 11.11 1162 ValueImp*BinaryLogicalNode::evaluate(ExecState *exec)1163 { 1164 ValueImp*v1 = expr1->evaluate(exec);1162 JSValue *BinaryLogicalNode::evaluate(ExecState *exec) 1163 { 1164 JSValue *v1 = expr1->evaluate(exec); 1165 1165 KJS_CHECKEXCEPTIONVALUE 1166 1166 bool b1 = v1->toBoolean(exec); … … 1168 1168 return v1; 1169 1169 1170 ValueImp*v2 = expr2->evaluate(exec);1170 JSValue *v2 = expr2->evaluate(exec); 1171 1171 KJS_CHECKEXCEPTIONVALUE 1172 1172 … … 1177 1177 1178 1178 // ECMA 11.12 1179 ValueImp*ConditionalNode::evaluate(ExecState *exec)1180 { 1181 ValueImp*v = logical->evaluate(exec);1179 JSValue *ConditionalNode::evaluate(ExecState *exec) 1180 { 1181 JSValue *v = logical->evaluate(exec); 1182 1182 KJS_CHECKEXCEPTIONVALUE 1183 1183 bool b = v->toBoolean(exec); … … 1196 1196 #if __GNUC__ 1197 1197 // gcc refuses to inline this without the always_inline, but inlining it does help 1198 static inline ValueImp *valueForReadModifyAssignment(ExecState * exec, ValueImp *v1, ValueImp*v2, Operator oper) __attribute__((always_inline));1198 static inline JSValue *valueForReadModifyAssignment(ExecState * exec, JSValue *v1, JSValue *v2, Operator oper) __attribute__((always_inline)); 1199 1199 #endif 1200 1200 1201 static inline ValueImp *valueForReadModifyAssignment(ExecState * exec, ValueImp *v1, ValueImp*v2, Operator oper)1202 { 1203 ValueImp*v;1201 static inline JSValue *valueForReadModifyAssignment(ExecState * exec, JSValue *v1, JSValue *v2, Operator oper) 1202 { 1203 JSValue *v; 1204 1204 int i1; 1205 1205 int i2; … … 1264 1264 // ------------------------------ AssignResolveNode ----------------------------------- 1265 1265 1266 ValueImp*AssignResolveNode::evaluate(ExecState *exec)1266 JSValue *AssignResolveNode::evaluate(ExecState *exec) 1267 1267 { 1268 1268 const ScopeChain& chain = exec->context().imp()->scopeChain(); … … 1274 1274 1275 1275 PropertySlot slot; 1276 ObjectImp*base;1276 JSObject *base; 1277 1277 do { 1278 1278 base = *iter; … … 1287 1287 1288 1288 found: 1289 ValueImp*v;1289 JSValue *v; 1290 1290 1291 1291 if (m_oper == OpEqual) { 1292 1292 v = m_right->evaluate(exec); 1293 1293 } else { 1294 ValueImp*v1 = slot.getValue(exec, m_ident);1294 JSValue *v1 = slot.getValue(exec, m_ident); 1295 1295 KJS_CHECKEXCEPTIONVALUE 1296 ValueImp*v2 = m_right->evaluate(exec);1296 JSValue *v2 = m_right->evaluate(exec); 1297 1297 v = valueForReadModifyAssignment(exec, v1, v2, m_oper); 1298 1298 } … … 1306 1306 // ------------------------------ AssignDotNode ----------------------------------- 1307 1307 1308 ValueImp*AssignDotNode::evaluate(ExecState *exec)1309 { 1310 ValueImp*baseValue = m_base->evaluate(exec);1311 KJS_CHECKEXCEPTIONVALUE 1312 ObjectImp*base = baseValue->toObject(exec);1313 1314 ValueImp*v;1308 JSValue *AssignDotNode::evaluate(ExecState *exec) 1309 { 1310 JSValue *baseValue = m_base->evaluate(exec); 1311 KJS_CHECKEXCEPTIONVALUE 1312 JSObject *base = baseValue->toObject(exec); 1313 1314 JSValue *v; 1315 1315 1316 1316 if (m_oper == OpEqual) { … … 1318 1318 } else { 1319 1319 PropertySlot slot; 1320 ValueImp*v1 = base->getPropertySlot(exec, m_ident, slot) ? slot.getValue(exec, m_ident) : jsUndefined();1320 JSValue *v1 = base->getPropertySlot(exec, m_ident, slot) ? slot.getValue(exec, m_ident) : jsUndefined(); 1321 1321 KJS_CHECKEXCEPTIONVALUE 1322 ValueImp*v2 = m_right->evaluate(exec);1322 JSValue *v2 = m_right->evaluate(exec); 1323 1323 v = valueForReadModifyAssignment(exec, v1, v2, m_oper); 1324 1324 } … … 1332 1332 // ------------------------------ AssignBracketNode ----------------------------------- 1333 1333 1334 ValueImp*AssignBracketNode::evaluate(ExecState *exec)1335 { 1336 ValueImp*baseValue = m_base->evaluate(exec);1337 KJS_CHECKEXCEPTIONVALUE 1338 ValueImp*subscript = m_subscript->evaluate(exec);1339 KJS_CHECKEXCEPTIONVALUE 1340 1341 ObjectImp*base = baseValue->toObject(exec);1334 JSValue *AssignBracketNode::evaluate(ExecState *exec) 1335 { 1336 JSValue *baseValue = m_base->evaluate(exec); 1337 KJS_CHECKEXCEPTIONVALUE 1338 JSValue *subscript = m_subscript->evaluate(exec); 1339 KJS_CHECKEXCEPTIONVALUE 1340 1341 JSObject *base = baseValue->toObject(exec); 1342 1342 1343 1343 uint32_t propertyIndex; 1344 1344 if (subscript->getUInt32(propertyIndex)) { 1345 ValueImp*v;1345 JSValue *v; 1346 1346 if (m_oper == OpEqual) { 1347 1347 v = m_right->evaluate(exec); 1348 1348 } else { 1349 1349 PropertySlot slot; 1350 ValueImp*v1 = base->getPropertySlot(exec, propertyIndex, slot) ? slot.getValue(exec, propertyIndex) : jsUndefined();1350 JSValue *v1 = base->getPropertySlot(exec, propertyIndex, slot) ? slot.getValue(exec, propertyIndex) : jsUndefined(); 1351 1351 KJS_CHECKEXCEPTIONVALUE 1352 ValueImp*v2 = m_right->evaluate(exec);1352 JSValue *v2 = m_right->evaluate(exec); 1353 1353 v = valueForReadModifyAssignment(exec, v1, v2, m_oper); 1354 1354 } … … 1361 1361 1362 1362 Identifier propertyName(subscript->toString(exec)); 1363 ValueImp*v;1363 JSValue *v; 1364 1364 1365 1365 if (m_oper == OpEqual) { … … 1367 1367 } else { 1368 1368 PropertySlot slot; 1369 ValueImp*v1 = base->getPropertySlot(exec, propertyName, slot) ? slot.getValue(exec, propertyName) : jsUndefined();1369 JSValue *v1 = base->getPropertySlot(exec, propertyName, slot) ? slot.getValue(exec, propertyName) : jsUndefined(); 1370 1370 KJS_CHECKEXCEPTIONVALUE 1371 ValueImp*v2 = m_right->evaluate(exec);1371 JSValue *v2 = m_right->evaluate(exec); 1372 1372 v = valueForReadModifyAssignment(exec, v1, v2, m_oper); 1373 1373 } … … 1382 1382 1383 1383 // ECMA 11.14 1384 ValueImp*CommaNode::evaluate(ExecState *exec)1384 JSValue *CommaNode::evaluate(ExecState *exec) 1385 1385 { 1386 1386 expr1->evaluate(exec); 1387 1387 KJS_CHECKEXCEPTIONVALUE 1388 ValueImp*v = expr2->evaluate(exec);1388 JSValue *v = expr2->evaluate(exec); 1389 1389 KJS_CHECKEXCEPTIONVALUE 1390 1390 … … 1415 1415 return c; 1416 1416 1417 ValueImp*v = c.value();1417 JSValue *v = c.value(); 1418 1418 1419 1419 for (StatListNode *n = list.get(); n; n = n->list.get()) { … … 1440 1440 1441 1441 // ECMA 12.2 1442 ValueImp*AssignExprNode::evaluate(ExecState *exec)1442 JSValue *AssignExprNode::evaluate(ExecState *exec) 1443 1443 { 1444 1444 return expr->evaluate(exec); … … 1454 1454 1455 1455 // ECMA 12.2 1456 ValueImp*VarDeclNode::evaluate(ExecState *exec)1457 { 1458 ObjectImp*variable = exec->context().imp()->variableObject();1459 1460 ValueImp*val;1456 JSValue *VarDeclNode::evaluate(ExecState *exec) 1457 { 1458 JSObject *variable = exec->context().imp()->variableObject(); 1459 1460 JSValue *val; 1461 1461 if (init) { 1462 1462 val = init->evaluate(exec); … … 1487 1487 void VarDeclNode::processVarDecls(ExecState *exec) 1488 1488 { 1489 ObjectImp*variable = exec->context().imp()->variableObject();1489 JSObject *variable = exec->context().imp()->variableObject(); 1490 1490 1491 1491 // If a variable by this name already exists, don't clobber it - … … 1504 1504 1505 1505 // ECMA 12.2 1506 ValueImp*VarDeclListNode::evaluate(ExecState *exec)1506 JSValue *VarDeclListNode::evaluate(ExecState *exec) 1507 1507 { 1508 1508 for (VarDeclListNode *n = this; n; n = n->list.get()) { … … 1582 1582 KJS_BREAKPOINT; 1583 1583 1584 ValueImp*v = expr->evaluate(exec);1584 JSValue *v = expr->evaluate(exec); 1585 1585 KJS_CHECKEXCEPTION 1586 1586 … … 1595 1595 KJS_BREAKPOINT; 1596 1596 1597 ValueImp*v = expr->evaluate(exec);1597 JSValue *v = expr->evaluate(exec); 1598 1598 KJS_CHECKEXCEPTION 1599 1599 bool b = v->toBoolean(exec); … … 1626 1626 KJS_BREAKPOINT; 1627 1627 1628 ValueImp*bv;1628 JSValue *bv; 1629 1629 Completion c; 1630 1630 … … 1661 1661 KJS_BREAKPOINT; 1662 1662 1663 ValueImp*bv;1663 JSValue *bv; 1664 1664 Completion c; 1665 1665 bool b(false); 1666 ValueImp*value = 0;1666 JSValue *value = 0; 1667 1667 1668 1668 while (1) { … … 1704 1704 Completion ForNode::execute(ExecState *exec) 1705 1705 { 1706 ValueImp*v, *cval = 0;1706 JSValue *v, *cval = 0; 1707 1707 1708 1708 if (expr1) { … … 1766 1766 Completion ForInNode::execute(ExecState *exec) 1767 1767 { 1768 ValueImp*e;1769 ValueImp*retval = 0;1770 ObjectImp*v;1768 JSValue *e; 1769 JSValue *retval = 0; 1770 JSObject *v; 1771 1771 Completion c; 1772 1772 ReferenceList propList; … … 1800 1800 } 1801 1801 1802 ValueImp*str = jsString(name.ustring());1802 JSValue *str = jsString(name.ustring()); 1803 1803 1804 1804 if (lexpr->isResolveNode()) { … … 1813 1813 1814 1814 PropertySlot slot; 1815 ObjectImp*o;1815 JSObject *o; 1816 1816 do { 1817 1817 o = *iter; … … 1826 1826 } else if (lexpr->isDotAccessorNode()) { 1827 1827 const Identifier& ident = static_cast<DotAccessorNode *>(lexpr.get())->identifier(); 1828 ValueImp*v = static_cast<DotAccessorNode *>(lexpr.get())->base()->evaluate(exec);1828 JSValue *v = static_cast<DotAccessorNode *>(lexpr.get())->base()->evaluate(exec); 1829 1829 KJS_CHECKEXCEPTION 1830 ObjectImp*o = v->toObject(exec);1830 JSObject *o = v->toObject(exec); 1831 1831 1832 1832 o->put(exec, ident, str); 1833 1833 } else { 1834 1834 assert(lexpr->isBracketAccessorNode()); 1835 ValueImp*v = static_cast<BracketAccessorNode *>(lexpr.get())->base()->evaluate(exec);1835 JSValue *v = static_cast<BracketAccessorNode *>(lexpr.get())->base()->evaluate(exec); 1836 1836 KJS_CHECKEXCEPTION 1837 ValueImp*v2 = static_cast<BracketAccessorNode *>(lexpr.get())->subscript()->evaluate(exec);1837 JSValue *v2 = static_cast<BracketAccessorNode *>(lexpr.get())->subscript()->evaluate(exec); 1838 1838 KJS_CHECKEXCEPTION 1839 ObjectImp*o = v->toObject(exec);1839 JSObject *o = v->toObject(exec); 1840 1840 1841 1841 uint32_t i; … … 1921 1921 return Completion(ReturnValue, jsUndefined()); 1922 1922 1923 ValueImp*v = value->evaluate(exec);1923 JSValue *v = value->evaluate(exec); 1924 1924 KJS_CHECKEXCEPTION 1925 1925 … … 1934 1934 KJS_BREAKPOINT; 1935 1935 1936 ValueImp*v = expr->evaluate(exec);1936 JSValue *v = expr->evaluate(exec); 1937 1937 KJS_CHECKEXCEPTION 1938 ObjectImp*o = v->toObject(exec);1938 JSObject *o = v->toObject(exec); 1939 1939 KJS_CHECKEXCEPTION 1940 1940 exec->context().imp()->pushScope(o); … … 1953 1953 1954 1954 // ECMA 12.11 1955 ValueImp*CaseClauseNode::evaluate(ExecState *exec)1956 { 1957 ValueImp*v = expr->evaluate(exec);1955 JSValue *CaseClauseNode::evaluate(ExecState *exec) 1956 { 1957 JSValue *v = expr->evaluate(exec); 1958 1958 KJS_CHECKEXCEPTIONVALUE 1959 1959 … … 1978 1978 // ------------------------------ ClauseListNode ------------------------------- 1979 1979 1980 ValueImp*ClauseListNode::evaluate(ExecState *)1980 JSValue *ClauseListNode::evaluate(ExecState *) 1981 1981 { 1982 1982 // should never be called … … 2015 2015 } 2016 2016 2017 ValueImp*CaseBlockNode::evaluate(ExecState *)2017 JSValue *CaseBlockNode::evaluate(ExecState *) 2018 2018 { 2019 2019 // should never be called … … 2023 2023 2024 2024 // ECMA 12.11 2025 Completion CaseBlockNode::evalBlock(ExecState *exec, ValueImp*input)2026 { 2027 ValueImp*v;2025 Completion CaseBlockNode::evalBlock(ExecState *exec, JSValue *input) 2026 { 2027 JSValue *v; 2028 2028 Completion res; 2029 2029 ClauseListNode *a = list1.get(); … … 2102 2102 KJS_BREAKPOINT; 2103 2103 2104 ValueImp*v = expr->evaluate(exec);2104 JSValue *v = expr->evaluate(exec); 2105 2105 KJS_CHECKEXCEPTION 2106 2106 … … 2146 2146 KJS_BREAKPOINT; 2147 2147 2148 ValueImp*v = expr->evaluate(exec);2148 JSValue *v = expr->evaluate(exec); 2149 2149 KJS_CHECKEXCEPTION 2150 2150 … … 2162 2162 2163 2163 if (catchBlock && c.complType() == Throw) { 2164 ObjectImp *obj = new ObjectImp;2164 JSObject *obj = new JSObject; 2165 2165 obj->put(exec, exceptionIdent, c.value(), DontDelete); 2166 2166 exec->context().imp()->pushScope(obj); … … 2190 2190 2191 2191 // ECMA 13 2192 ValueImp*ParameterNode::evaluate(ExecState *)2192 JSValue *ParameterNode::evaluate(ExecState *) 2193 2193 { 2194 2194 return jsUndefined(); … … 2219 2219 FunctionImp *func = new DeclaredFunctionImp(exec, ident, body.get(), context->scopeChain()); 2220 2220 2221 ObjectImp*proto = exec->lexicalInterpreter()->builtinObject()->construct(exec, List::empty());2221 JSObject *proto = exec->lexicalInterpreter()->builtinObject()->construct(exec, List::empty()); 2222 2222 proto->put(exec, constructorPropertyName, func, ReadOnly|DontDelete|DontEnum); 2223 2223 func->put(exec, prototypePropertyName, proto, Internal|DontDelete); … … 2235 2235 // hack the scope so that the function gets put as a property of func, and it's scope 2236 2236 // contains the func as well as our current scope 2237 ObjectImp*oldVar = context->variableObject();2237 JSObject *oldVar = context->variableObject(); 2238 2238 context->setVariableObject(func); 2239 2239 context->pushScope(func); … … 2252 2252 2253 2253 // ECMA 13 2254 ValueImp*FuncExprNode::evaluate(ExecState *exec)2254 JSValue *FuncExprNode::evaluate(ExecState *exec) 2255 2255 { 2256 2256 ContextImp *context = exec->context().imp(); 2257 2257 bool named = !ident.isNull(); 2258 ObjectImp*functionScopeObject = 0;2258 JSObject *functionScopeObject = 0; 2259 2259 2260 2260 if (named) { … … 2262 2262 // but they won't register with the current scope chain and should 2263 2263 // be contained as single property in an anonymous object. 2264 functionScopeObject = new ObjectImp;2264 functionScopeObject = new JSObject; 2265 2265 context->pushScope(functionScopeObject); 2266 2266 } 2267 2267 2268 2268 FunctionImp *func = new DeclaredFunctionImp(exec, ident, body.get(), context->scopeChain()); 2269 ObjectImp*proto = exec->lexicalInterpreter()->builtinObject()->construct(exec, List::empty());2269 JSObject *proto = exec->lexicalInterpreter()->builtinObject()->construct(exec, List::empty()); 2270 2270 proto->put(exec, constructorPropertyName, func, ReadOnly|DontDelete|DontEnum); 2271 2271 func->put(exec, prototypePropertyName, proto, Internal|DontDelete);
Note:
See TracChangeset
for help on using the changeset viewer.