Changeset 29815 in webkit for trunk/JavaScriptCore/kjs
- Timestamp:
- Jan 26, 2008, 8:21:43 PM (17 years ago)
- Location:
- trunk/JavaScriptCore/kjs
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/kjs/nodes.h
r29809 r29815 31 31 #include "SymbolTable.h" 32 32 #include <wtf/ListRefPtr.h> 33 #include <wtf/MathExtras.h> 33 34 #include <wtf/OwnPtr.h> 34 35 #include <wtf/Vector.h> … … 253 254 virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL; 254 255 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; 255 virtual Precedence precedence() const { return PrecPrimary; }256 virtual Precedence precedence() const { return signbit(m_double) ? PrecUnary : PrecPrimary; } 256 257 257 258 virtual bool isNumber() const KJS_FAST_CALL { return true; } -
trunk/JavaScriptCore/kjs/nodes2string.cpp
r29813 r29815 1 1 /* 2 2 * Copyright (C) 2002 Harri Porten ([email protected]) 3 * Copyright (C) 2003, 2004, 2005, 2006, 2007 Apple Inc. All rights reserved.3 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. 4 4 * Copyright (C) 2007 Eric Seidel <[email protected]> 5 5 * … … 38 38 enum IndentType { Indent }; 39 39 enum UnindentType { Unindent }; 40 enum ObjectAccessType { ObjectAccess};40 enum DotExprType { DotExpr }; 41 41 42 42 class SourceStream { … … 52 52 SourceStream& operator<<(IndentType); 53 53 SourceStream& operator<<(UnindentType); 54 SourceStream& operator<<( ObjectAccessType);54 SourceStream& operator<<(DotExprType); 55 55 SourceStream& operator<<(Precedence); 56 56 SourceStream& operator<<(const Node*); … … 201 201 bool needParens = (m_precedence != PrecExpression && n->precedence() > m_precedence) || (m_atStartOfStatement && n->needsParensIfLeftmost()); 202 202 m_precedence = PrecExpression; 203 if (n) { 204 if (needParens) 205 m_string.append('('); 206 n->streamTo(*this); 207 if (needParens) 208 m_string.append(')'); 203 if (!n) 204 return *this; 205 if (needParens) { 206 m_numberNeedsParens = false; 207 m_string.append('('); 209 208 } 209 n->streamTo(*this); 210 if (needParens) 211 m_string.append(')'); 210 212 return *this; 211 213 } … … 236 238 } 237 239 238 inline SourceStream& SourceStream::operator<<( ObjectAccessType)240 inline SourceStream& SourceStream::operator<<(DotExprType) 239 241 { 240 242 m_numberNeedsParens = true; … … 264 266 static inline void bracketNodeStreamTo(SourceStream& s, const RefPtr<ExpressionNode>& base, const RefPtr<ExpressionNode>& subscript) 265 267 { 266 s << ObjectAccess <<PrecCall << base.get() << "[" << subscript.get() << "]";268 s << PrecCall << base.get() << "[" << subscript.get() << "]"; 267 269 } 268 270 269 271 static inline void dotNodeStreamTo(SourceStream& s, const RefPtr<ExpressionNode>& base, const Identifier& ident) 270 272 { 271 s << ObjectAccess<< PrecCall << base.get() << "." << ident;273 s << DotExpr << PrecCall << base.get() << "." << ident; 272 274 } 273 275 … … 415 417 void NewExprNode::streamTo(SourceStream& s) const 416 418 { 417 s << "new " << ObjectAccess <<PrecMember << expr << args;419 s << "new " << PrecMember << expr << args; 418 420 } 419 421
Note:
See TracChangeset
for help on using the changeset viewer.