2007-11-07 Eric Seidel <eric@webkit.org>
[WebKit-https.git] / JavaScriptCore / kjs / grammar.y
index 1baa7f9fbce797ca7a1422a731c615c3f239922c..aa9c9eee99ca62d54607640c067aaaf58a15f5af 100644 (file)
@@ -3,6 +3,7 @@
 /*
  *  Copyright (C) 1999-2000 Harri Porten (porten@kde.org)
  *  Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
+ *  Copyright (C) 2007 Eric Seidel <eric@webkit.org>
  *
  *  This library is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU Lesser General Public
@@ -1020,7 +1021,7 @@ static PropertyNode* makeGetterOrSetterPropertyNode(const Identifier& getOrSet,
     return new PropertyNode(name, new FuncExprNode(CommonIdentifiers::shared()->nullIdentifier, body, params), type);
 }
 
-static Node* makeNegateNode(Node *n)
+static Node* makeNegateNode(Noden)
 {
     if (n->isNumber()) {
         NumberNode* number = static_cast<NumberNode*>(n);
@@ -1029,13 +1030,6 @@ static Node* makeNegateNode(Node *n)
             number->setValue(-number->value());
             return number;
         }
-    } else if (n->isImmediateValue()) {
-        ImmediateNumberNode* number = static_cast<ImmediateNumberNode*>(n);
-        double value = number->value();
-        if (value > 0.0) {
-            number->setValue(-value);
-            return number;
-        }
     }
 
     return new NegateNode(n);
@@ -1045,7 +1039,7 @@ static Node* makeNumberNode(double d)
 {
     JSValue* value = JSImmediate::fromDouble(d);
     if (value)
-        return new ImmediateNumberNode(value);
+        return new ImmediateNumberNode(value, d);
     return new NumberNode(d);
 }