Changeset 37408 in webkit for trunk/JavaScriptCore/kjs


Ignore:
Timestamp:
Oct 7, 2008, 11:36:41 PM (17 years ago)
Author:
[email protected]
Message:

2008-10-07 Sam Weinig <[email protected]>

Roll out r37405.

Location:
trunk/JavaScriptCore/kjs
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/kjs/grammar.y

    r37405 r37408  
    14251425static ExpressionNode* makeMultNode(void* globalPtr, ExpressionNode* expr1, ExpressionNode* expr2, bool rightHasAssignments)
    14261426{
    1427     // these transforms are valid because unary + only does a toNumber
    1428     // conversion, which * does anyway:
    1429     expr1 = expr1->stripUnaryPlus(); // +FOO * BAR ==> FOO * BAR
    1430     expr2 = expr2->stripUnaryPlus(); // FOO * +BAR ==> FOO * BAR
    1431 
    14321427    if (expr1->isNumber() && expr2->isNumber())
    14331428        return makeNumberNode(globalPtr, static_cast<NumberNode*>(expr1)->value() * static_cast<NumberNode*>(expr2)->value());
    1434 
    1435     // these transforms are valid because multiplying by 1 has no
    1436     // effect but toNumber conversion
    1437     if (expr1->isNumber() && static_cast<NumberNode*>(expr1)->value() == 1)
    1438         return new UnaryPlusNode(GLOBAL_DATA, expr2); // 1 * FOO ==> +FOO
    1439     if (expr2->isNumber() && static_cast<NumberNode*>(expr2)->value() == 1)
    1440         return new UnaryPlusNode(GLOBAL_DATA, expr1); // FOO * 1 ==> +FOO
    1441 
    14421429    return new MultNode(GLOBAL_DATA, expr1, expr2, rightHasAssignments);
    14431430}
     
    14451432static ExpressionNode* makeDivNode(void* globalPtr, ExpressionNode* expr1, ExpressionNode* expr2, bool rightHasAssignments)
    14461433{
    1447     // these transforms are valid because unary + only does a toNumber
    1448     // conversion, which / does anyway:
    1449     expr1 = expr1->stripUnaryPlus(); // +FOO / BAR ==> FOO / BAR
    1450     expr2 = expr2->stripUnaryPlus(); // FOO / +BAR ==> FOO / BAR
    1451 
    14521434    if (expr1->isNumber() && expr2->isNumber())
    14531435        return makeNumberNode(globalPtr, static_cast<NumberNode*>(expr1)->value() / static_cast<NumberNode*>(expr2)->value());
     
    14641446static ExpressionNode* makeSubNode(void* globalPtr, ExpressionNode* expr1, ExpressionNode* expr2, bool rightHasAssignments)
    14651447{
    1466     // these transforms are valid because unary + only does a toNumber
    1467     // conversion, which - does anyway:
    1468     expr1 = expr1->stripUnaryPlus(); // +FOO - BAR ==> FOO - BAR
    1469     expr2 = expr2->stripUnaryPlus(); // FOO - +BAR ==> FOO - BAR
    1470 
    14711448    if (expr1->isNumber() && expr2->isNumber())
    14721449        return makeNumberNode(globalPtr, static_cast<NumberNode*>(expr1)->value() - static_cast<NumberNode*>(expr2)->value());
  • trunk/JavaScriptCore/kjs/nodes.h

    r37405 r37408  
    227227        virtual bool isDotAccessorNode() const JSC_FAST_CALL { return false; }
    228228
    229         virtual ExpressionNode* stripUnaryPlus() { return this; }
    230 
    231229        ResultType resultDescriptor() const JSC_FAST_CALL { return m_resultDesc; }
    232230
     
    11811179        {
    11821180        }
    1183 
    1184         virtual ExpressionNode* stripUnaryPlus() { return m_expr.get(); }
    11851181
    11861182        virtual OpcodeID opcode() const JSC_FAST_CALL { return op_to_jsnumber; }
Note: See TracChangeset for help on using the changeset viewer.