Changeset 27747 in webkit for trunk/JavaScriptCore/kjs/nodes.h
- Timestamp:
- Nov 13, 2007, 12:02:44 AM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/kjs/nodes.h
r27703 r27747 181 181 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL = 0; 182 182 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; 183 virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL; 184 virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL; 183 185 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; 184 186 … … 235 237 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; 236 238 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; 239 virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL; 240 virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL; 237 241 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; 238 242 virtual Precedence precedence() const { return PrecPrimary; } … … 250 254 ImmediateNumberNode(JSValue* v, double d) KJS_FAST_CALL : NumberNode(d), m_value(v) { ASSERT(v == JSImmediate::from(d)); } 251 255 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 256 virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL; 257 virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL; 252 258 253 259 virtual void setValue(double d) KJS_FAST_CALL { m_double = d; m_value = JSImmediate::from(d); ASSERT(m_value); } … … 307 313 308 314 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 315 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; 316 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; 317 virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL; 318 virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL; 309 319 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; 310 320 virtual Precedence precedence() const { return PrecPrimary; } … … 315 325 316 326 protected: 327 ALWAYS_INLINE JSValue* inlineEvaluate(ExecState*); 317 328 Identifier ident; 318 329 size_t index; // Used by LocalVarAccessNode. … … 331 342 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; 332 343 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; 344 virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL; 345 virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL; 333 346 private: 334 347 ALWAYS_INLINE JSValue* inlineEvaluate(ExecState*); … … 429 442 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; 430 443 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; 444 virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL; 445 virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL; 431 446 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; 432 447 virtual Precedence precedence() const { return PrecMember; } … … 448 463 virtual void optimizeVariableAccess(FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 449 464 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 465 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; 466 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; 467 virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL; 468 virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL; 450 469 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; 451 470 virtual Precedence precedence() const { return PrecMember; } … … 457 476 458 477 private: 478 ALWAYS_INLINE JSValue* inlineEvaluate(ExecState*); 459 479 RefPtr<ExpressionNode> expr; 460 480 Identifier ident; … … 500 520 virtual void optimizeVariableAccess(FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 501 521 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 522 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; 523 virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL; 524 virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL; 525 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; 502 526 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; 503 527 virtual Precedence precedence() const { return PrecLeftHandSide; } 504 528 private: 529 ALWAYS_INLINE JSValue* inlineEvaluate(ExecState*); 505 530 RefPtr<ExpressionNode> expr; 506 531 RefPtr<ArgumentsNode> args; … … 536 561 virtual void optimizeVariableAccess(FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 537 562 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 563 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; 564 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; 565 virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL; 566 virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL; 538 567 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; 539 568 virtual Precedence precedence() const { return PrecCall; } 540 569 541 570 protected: 571 ALWAYS_INLINE JSValue* inlineEvaluate(ExecState*); 542 572 Identifier ident; 543 573 RefPtr<ArgumentsNode> args; … … 555 585 556 586 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 587 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; 588 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; 589 virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL; 590 virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL; 591 private: 592 ALWAYS_INLINE JSValue* inlineEvaluate(ExecState*); 557 593 }; 558 594 … … 575 611 virtual void optimizeVariableAccess(FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 576 612 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 613 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; 614 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; 615 virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL; 616 virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL; 577 617 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; 578 618 virtual Precedence precedence() const { return PrecCall; } 579 protected: 619 private: 620 ALWAYS_INLINE JSValue* inlineEvaluate(ExecState*); 580 621 RefPtr<ExpressionNode> base; 581 622 Identifier ident; … … 654 695 655 696 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 697 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; 698 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; 699 virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL; 700 virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL; 656 701 virtual void optimizeForUnnecessaryResult(); 702 private: 703 ALWAYS_INLINE double inlineEvaluateToNumber(ExecState*); 657 704 }; 658 705 … … 981 1028 virtual void optimizeVariableAccess(FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 982 1029 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1030 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; 1031 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; 1032 virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL; 1033 virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL; 983 1034 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; 984 1035 virtual Precedence precedence() const { return PrecUnary; } … … 1004 1055 virtual void optimizeVariableAccess(FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1005 1056 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1057 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; 1058 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; 1059 virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL; 1060 virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL; 1006 1061 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; 1007 1062 virtual Precedence precedence() const { return PrecUnary; } 1008 1063 private: 1064 ALWAYS_INLINE int32_t inlineEvaluateToInt32(ExecState*); 1009 1065 RefPtr<ExpressionNode> expr; 1010 1066 }; … … 1028 1084 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1029 1085 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; 1086 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; 1087 virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL; 1088 virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL; 1030 1089 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; 1031 1090 virtual Precedence precedence() const { return PrecMultiplicitave; } … … 1042 1101 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1043 1102 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; 1103 virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL; 1104 virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL; 1044 1105 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; 1045 1106 virtual Precedence precedence() const { return PrecMultiplicitave; } … … 1056 1117 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1057 1118 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; 1119 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; 1120 virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL; 1121 virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL; 1058 1122 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; 1059 1123 virtual Precedence precedence() const { return PrecMultiplicitave; } … … 1070 1134 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1071 1135 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; 1136 virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL; 1137 virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL; 1072 1138 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; 1073 1139 virtual Precedence precedence() const { return PrecAdditive; } … … 1076 1142 RefPtr<ExpressionNode> term1; 1077 1143 RefPtr<ExpressionNode> term2; 1144 private: 1145 ALWAYS_INLINE double inlineEvaluateToNumber(ExecState*); 1078 1146 }; 1079 1147 … … 1083 1151 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1084 1152 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; 1153 virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL; 1154 virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL; 1085 1155 private: 1086 1156 ALWAYS_INLINE double inlineEvaluateToNumber(ExecState*) KJS_FAST_CALL; … … 1111 1181 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1112 1182 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; 1183 virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL; 1184 virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL; 1113 1185 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; 1114 1186 virtual Precedence precedence() const { return PrecAdditive; } … … 1125 1197 virtual void optimizeVariableAccess(FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1126 1198 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1199 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; 1200 virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL; 1201 virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL; 1127 1202 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; 1128 1203 virtual Precedence precedence() const { return PrecShift; } 1129 1204 private: 1205 ALWAYS_INLINE int32_t inlineEvaluateToInt32(ExecState*); 1130 1206 RefPtr<ExpressionNode> term1; 1131 1207 RefPtr<ExpressionNode> term2; … … 1138 1214 virtual void optimizeVariableAccess(FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1139 1215 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1216 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; 1217 virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL; 1218 virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL; 1140 1219 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; 1141 1220 virtual Precedence precedence() const { return PrecShift; } 1142 1221 private: 1222 ALWAYS_INLINE int32_t inlineEvaluateToInt32(ExecState*); 1143 1223 RefPtr<ExpressionNode> term1; 1144 1224 RefPtr<ExpressionNode> term2; … … 1151 1231 virtual void optimizeVariableAccess(FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1152 1232 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1233 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; 1234 virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL; 1235 virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL; 1153 1236 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; 1154 1237 virtual Precedence precedence() const { return PrecShift; } 1155 1238 private: 1239 ALWAYS_INLINE uint32_t inlineEvaluateToUInt32(ExecState*); 1156 1240 RefPtr<ExpressionNode> term1; 1157 1241 RefPtr<ExpressionNode> term2; … … 1167 1251 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; 1168 1252 virtual Precedence precedence() const { return PrecRelational; } 1253 private: 1254 ALWAYS_INLINE bool inlineEvaluateToBoolean(ExecState*); 1169 1255 protected: 1170 1256 RefPtr<ExpressionNode> expr1; … … 1175 1261 public: 1176 1262 LessNumbersNode(ExpressionNode* e1, ExpressionNode* e2) KJS_FAST_CALL 1177 : LessNode(e1, e2) {}1263 : LessNode(e1, e2) {} 1178 1264 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1265 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; 1266 private: 1267 ALWAYS_INLINE bool inlineEvaluateToBoolean(ExecState*); 1179 1268 }; 1180 1269 … … 1182 1271 public: 1183 1272 LessStringsNode(ExpressionNode* e1, ExpressionNode* e2) KJS_FAST_CALL 1184 : LessNode(e1, e2) {}1273 : LessNode(e1, e2) {} 1185 1274 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1275 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; 1276 private: 1277 ALWAYS_INLINE bool inlineEvaluateToBoolean(ExecState*); 1186 1278 }; 1187 1279 … … 1318 1410 virtual void optimizeVariableAccess(FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1319 1411 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1412 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; 1413 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; 1414 virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL; 1415 virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL; 1320 1416 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; 1321 1417 virtual Precedence precedence() const { return PrecBitwiseAnd; } 1322 1418 private: 1419 ALWAYS_INLINE int32_t inlineEvaluateToInt32(ExecState*); 1323 1420 RefPtr<ExpressionNode> expr1; 1324 1421 RefPtr<ExpressionNode> expr2; … … 1331 1428 virtual void optimizeVariableAccess(FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1332 1429 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1430 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; 1431 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; 1432 virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL; 1433 virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL; 1333 1434 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; 1334 1435 virtual Precedence precedence() const { return PrecBitwiseOr; } 1335 1436 private: 1437 ALWAYS_INLINE int32_t inlineEvaluateToInt32(ExecState*); 1336 1438 RefPtr<ExpressionNode> expr1; 1337 1439 RefPtr<ExpressionNode> expr2; … … 1344 1446 virtual void optimizeVariableAccess(FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1345 1447 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1448 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; 1449 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; 1450 virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL; 1451 virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL; 1346 1452 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; 1347 1453 virtual Precedence precedence() const { return PrecBitwiseXor; } 1348 1454 private: 1455 ALWAYS_INLINE int32_t inlineEvaluateToInt32(ExecState*); 1349 1456 RefPtr<ExpressionNode> expr1; 1350 1457 RefPtr<ExpressionNode> expr2; … … 1364 1471 virtual Precedence precedence() const { return PrecLogicalAnd; } 1365 1472 private: 1473 ALWAYS_INLINE int32_t inlineEvaluateToInt32(ExecState*); 1366 1474 RefPtr<ExpressionNode> expr1; 1367 1475 RefPtr<ExpressionNode> expr2; … … 1378 1486 virtual Precedence precedence() const { return PrecLogicalOr; } 1379 1487 private: 1488 ALWAYS_INLINE int32_t inlineEvaluateToInt32(ExecState*); 1380 1489 RefPtr<ExpressionNode> expr1; 1381 1490 RefPtr<ExpressionNode> expr2; … … 1392 1501 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1393 1502 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; 1503 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; 1504 virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL; 1505 virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL; 1394 1506 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; 1395 1507 virtual Precedence precedence() const { return PrecConditional; } … … 1567 1679 virtual void optimizeVariableAccess(FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1568 1680 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1681 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; 1682 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; 1683 virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL; 1684 virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL; 1569 1685 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; 1570 1686 virtual Precedence precedence() const { ASSERT_NOT_REACHED(); return PrecExpression; }
Note:
See TracChangeset
for help on using the changeset viewer.