#include "internal.h"
#include "regexp.h"
+#include "SourceCode.h"
#include "SymbolTable.h"
#include <wtf/ListRefPtr.h>
#include <wtf/MathExtras.h>
{
}
- UString toString() const KJS_FAST_CALL;
+ UString toString() KJS_FAST_CALL;
int lineNo() const KJS_FAST_CALL { return m_line; }
// Serialization.
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL = 0;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL = 0;
virtual Precedence precedence() const = 0;
virtual bool needsParensIfLeftmost() const { return false; }
virtual bool isResolveNode() const KJS_FAST_CALL { return false; }
virtual bool isBracketAccessorNode() const KJS_FAST_CALL { return false; }
virtual bool isDotAccessorNode() const KJS_FAST_CALL { return false; }
+ virtual bool isFuncExprNode() const KJS_FAST_CALL { return false; }
JSType expectedReturnType() const KJS_FAST_CALL { return static_cast<JSType>(m_expectedReturnType); }
void pushLabel(const Identifier& ident) KJS_FAST_CALL { m_labelStack.push(ident); }
virtual Precedence precedence() const { ASSERT_NOT_REACHED(); return PrecExpression; }
virtual bool isEmptyStatement() const KJS_FAST_CALL { return false; }
+ virtual bool isExprStatement() const KJS_FAST_CALL { return false; }
protected:
LabelStack m_labelStack;
public:
NullNode() KJS_FAST_CALL : ExpressionNode(NullType) {}
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecPrimary; }
};
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL { return false; }
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecPrimary; }
};
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL { return true; }
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecPrimary; }
};
{
}
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
};
class NumberNode : public ExpressionNode {
virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL;
virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL;
virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return signbit(m_double) ? PrecUnary : PrecPrimary; }
virtual bool isNumber() const KJS_FAST_CALL { return true; }
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL;
virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecPrimary; }
private:
}
JSValue* evaluate(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecPrimary; }
private:
}
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecPrimary; }
};
virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL;
virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL;
virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecPrimary; }
virtual bool isLocation() const KJS_FAST_CALL { return true; }
}
virtual Precedence precedence() const { ASSERT_NOT_REACHED(); return PrecExpression; }
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
PassRefPtr<ElementNode> releaseNext() KJS_FAST_CALL { return m_next.release(); }
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecPrimary; }
private:
}
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { ASSERT_NOT_REACHED(); return PrecExpression; }
JSValue* evaluate(ExecState*) KJS_FAST_CALL;
}
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { ASSERT_NOT_REACHED(); return PrecExpression; }
JSValue* evaluate(ExecState*) KJS_FAST_CALL;
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecPrimary; }
virtual bool needsParensIfLeftmost() const { return true; }
virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL;
virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL;
virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecMember; }
virtual bool isLocation() const KJS_FAST_CALL { return true; }
virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL;
virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL;
virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecMember; }
virtual bool isLocation() const KJS_FAST_CALL { return true; }
}
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { ASSERT_NOT_REACHED(); return PrecExpression; }
void evaluateList(ExecState*, List&) KJS_FAST_CALL;
}
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { ASSERT_NOT_REACHED(); return PrecExpression; }
void evaluateList(ExecState* exec, List& list) KJS_FAST_CALL { if (m_listNode) m_listNode->evaluateList(exec, list); }
virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL;
virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL;
virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecLeftHandSide; }
private:
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecCall; }
private:
virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL;
virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL;
virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecCall; }
protected:
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecCall; }
protected:
virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL;
virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL;
virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecCall; }
private:
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecPostfix; }
virtual void optimizeForUnnecessaryResult();
};
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecPostfix; }
virtual void optimizeForUnnecessaryResult();
};
}
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
};
class PostDecBracketNode : public PostfixBracketNode {
}
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
};
class PostfixDotNode : public ExpressionNode {
}
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
};
class PostDecDotNode : public PostfixDotNode {
}
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
};
class PostfixErrorNode : public ExpressionNode {
}
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecPostfix; }
private:
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecUnary; }
private:
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecUnary; }
private:
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecUnary; }
private:
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecUnary; }
private:
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecUnary; }
private:
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecUnary; }
const Identifier& identifier() const KJS_FAST_CALL { return m_ident; }
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecUnary; }
private:
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecUnary; }
};
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecUnary; }
};
}
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
};
class PreDecBracketNode : public PrefixBracketNode {
}
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
};
class PrefixDotNode : public ExpressionNode {
}
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
};
class PreDecDotNode : public PrefixDotNode {
}
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
};
class PrefixErrorNode : public ExpressionNode {
}
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecUnary; }
private:
virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL;
virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL;
virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecUnary; }
private:
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecUnary; }
private:
virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL;
virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL;
virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecUnary; }
private:
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecUnary; }
private:
virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL;
virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL;
virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecMultiplicitave; }
private:
virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL;
virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL;
virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecMultiplicitave; }
private:
virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL;
virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL;
virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecMultiplicitave; }
private:
virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL;
virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL;
virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecAdditive; }
protected:
virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL;
virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL;
virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecAdditive; }
private:
virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL;
virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL;
virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecShift; }
private:
virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL;
virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL;
virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecShift; }
private:
virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL;
virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL;
virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecShift; }
private:
ALWAYS_INLINE uint32_t inlineEvaluateToUInt32(ExecState*);
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecRelational; }
private:
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecRelational; }
private:
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecRelational; }
private:
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecRelational; }
private:
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecRelational; }
private:
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecRelational; }
private:
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecEquality; }
private:
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecEquality; }
private:
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecEquality; }
private:
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecEquality; }
private:
virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL;
virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL;
virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecBitwiseAnd; }
private:
virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL;
virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL;
virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecBitwiseOr; }
private:
virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL;
virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL;
virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecBitwiseXor; }
private:
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecLogicalAnd; }
private:
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecLogicalOr; }
private:
virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL;
virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL;
virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecConditional; }
private:
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecAssignment; }
protected:
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecAssignment; }
protected:
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecAssignment; }
protected:
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecAssignment; }
protected:
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecAssignment; }
protected:
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecAssignment; }
protected:
}
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecAssignment; }
protected:
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecExpression; }
private:
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual KJS::JSValue* evaluate(ExecState*) KJS_FAST_CALL;
void evaluateSingle(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { ASSERT_NOT_REACHED(); return PrecExpression; }
PassRefPtr<ConstDeclNode> releaseNext() KJS_FAST_CALL { return m_next.release(); }
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* execute(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
private:
RefPtr<ConstDeclNode> m_next;
class BlockNode : public StatementNode {
public:
+ BlockNode() KJS_FAST_CALL;
BlockNode(SourceElements* children) KJS_FAST_CALL;
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* execute(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
protected:
StatementVector m_children;
}
virtual JSValue* execute(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual bool isEmptyStatement() const KJS_FAST_CALL { return true; }
};
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* execute(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
+ virtual bool isExprStatement() const KJS_FAST_CALL { return true; }
+
+ ExpressionNode* expr() const { return m_expr.get(); }
private:
RefPtr<ExpressionNode> m_expr;
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* execute(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
private:
RefPtr<ExpressionNode> m_expr;
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* execute(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
protected:
RefPtr<ExpressionNode> m_condition;
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* execute(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
private:
RefPtr<StatementNode> m_elseBlock;
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* execute(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
private:
RefPtr<StatementNode> m_statement;
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* execute(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
private:
RefPtr<ExpressionNode> m_expr;
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* execute(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
private:
RefPtr<ExpressionNode> m_expr1;
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* execute(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
private:
Identifier m_ident;
}
virtual JSValue* execute(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
private:
Identifier m_ident;
}
virtual JSValue* execute(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
private:
Identifier m_ident;
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* execute(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
private:
RefPtr<ExpressionNode> m_value;
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* execute(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
private:
RefPtr<ExpressionNode> m_expr;
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* execute(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
private:
Identifier m_label;
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* execute(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
private:
RefPtr<ExpressionNode> m_expr;
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* execute(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
private:
RefPtr<StatementNode> m_tryBlock;
Identifier ident() KJS_FAST_CALL { return m_ident; }
ParameterNode *nextParam() KJS_FAST_CALL { return m_next.get(); }
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
PassRefPtr<ParameterNode> releaseNext() KJS_FAST_CALL { return m_next.release(); }
virtual Precedence precedence() const { ASSERT_NOT_REACHED(); return PrecExpression; }
class ScopeNode : public BlockNode {
public:
- ScopeNode(SourceElements*, VarStack*, FunctionStack*) KJS_FAST_CALL;
+ ScopeNode() KJS_FAST_CALL;
+ ScopeNode(const SourceCode&, SourceElements*, VarStack*, FunctionStack*) KJS_FAST_CALL;
+
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
+
+ void setSource(const SourceCode& source) { m_source = source; }
+ const SourceCode& source() const { return m_source; }
+ const UString& sourceURL() const KJS_FAST_CALL { return m_source.provider()->url(); }
+ intptr_t sourceID() const { return m_source.provider()->asID(); }
- int sourceId() const KJS_FAST_CALL { return m_sourceId; }
- const UString& sourceURL() const KJS_FAST_CALL { return m_sourceURL; }
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ void setData(SourceElements*, VarStack*, FunctionStack*);
protected:
void optimizeVariableAccess(ExecState*) KJS_FAST_CALL;
FunctionStack m_functionStack;
private:
- UString m_sourceURL;
- int m_sourceId;
+ SourceCode m_source;
};
class ProgramNode : public ScopeNode {
public:
- static ProgramNode* create(SourceElements*, VarStack*, FunctionStack*) KJS_FAST_CALL;
+ static ProgramNode* create(const SourceCode&, SourceElements*, VarStack*, FunctionStack*) KJS_FAST_CALL;
virtual JSValue* execute(ExecState*) KJS_FAST_CALL;
private:
- ProgramNode(SourceElements*, VarStack*, FunctionStack*) KJS_FAST_CALL;
+ ProgramNode(const SourceCode&, SourceElements*, VarStack*, FunctionStack*) KJS_FAST_CALL;
void initializeSymbolTable(ExecState*) KJS_FAST_CALL;
ALWAYS_INLINE void processDeclarations(ExecState*) KJS_FAST_CALL;
class EvalNode : public ScopeNode {
public:
- static EvalNode* create(SourceElements*, VarStack*, FunctionStack*) KJS_FAST_CALL;
+ static EvalNode* create(const SourceCode&, SourceElements*, VarStack*, FunctionStack*) KJS_FAST_CALL;
virtual JSValue* execute(ExecState*) KJS_FAST_CALL;
private:
- EvalNode(SourceElements*, VarStack*, FunctionStack*) KJS_FAST_CALL;
+ EvalNode(const SourceCode&, SourceElements*, VarStack*, FunctionStack*) KJS_FAST_CALL;
ALWAYS_INLINE void processDeclarations(ExecState*) KJS_FAST_CALL;
};
class FunctionBodyNode : public ScopeNode {
public:
+ static FunctionBodyNode* create() KJS_FAST_CALL;
static FunctionBodyNode* create(SourceElements*, VarStack*, FunctionStack*) KJS_FAST_CALL;
+ static FunctionBodyNode* create(const SourceCode&, SourceElements*, VarStack*, FunctionStack*) KJS_FAST_CALL;
virtual JSValue* execute(ExecState*) KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
SymbolTable& symbolTable() KJS_FAST_CALL { return m_symbolTable; }
UString paramString() const KJS_FAST_CALL;
protected:
- FunctionBodyNode(SourceElements*, VarStack*, FunctionStack*) KJS_FAST_CALL;
+ FunctionBodyNode() KJS_FAST_CALL;
+ FunctionBodyNode(const SourceCode&, SourceElements*, VarStack*, FunctionStack*) KJS_FAST_CALL;
private:
void initializeSymbolTable(ExecState*) KJS_FAST_CALL;
class FuncExprNode : public ExpressionNode {
public:
- FuncExprNode(const Identifier& ident, FunctionBodyNode* body, ParameterNode* parameter = 0) KJS_FAST_CALL
+ FuncExprNode(const Identifier& ident, FunctionBodyNode* body, const SourceCode& source, ParameterNode* parameter = 0) KJS_FAST_CALL
: m_ident(ident)
, m_parameter(parameter)
, m_body(body)
{
addParams();
+ m_body->setSource(source);
}
virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { return PrecMember; }
virtual bool needsParensIfLeftmost() const { return true; }
+ virtual bool isFuncExprNode() const KJS_FAST_CALL { return true; }
private:
void addParams() KJS_FAST_CALL;
class FuncDeclNode : public StatementNode {
public:
- FuncDeclNode(const Identifier& ident, FunctionBodyNode* body) KJS_FAST_CALL
- : m_ident(ident)
- , m_body(body)
- {
- addParams();
- }
-
- FuncDeclNode(const Identifier& ident, ParameterNode* parameter, FunctionBodyNode* body) KJS_FAST_CALL
+ FuncDeclNode(const Identifier& ident, FunctionBodyNode* body, const SourceCode& source, ParameterNode* parameter = 0) KJS_FAST_CALL
: m_ident(ident)
, m_parameter(parameter)
, m_body(body)
{
addParams();
+ m_body->setSource(source);
}
virtual JSValue* execute(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
ALWAYS_INLINE FunctionImp* makeFunction(ExecState*) KJS_FAST_CALL;
Identifier m_ident;
}
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { ASSERT_NOT_REACHED(); return PrecExpression; }
JSValue* evaluate(ExecState*) KJS_FAST_CALL;
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
CaseClauseNode* getClause() const KJS_FAST_CALL { return m_clause.get(); }
ClauseListNode* getNext() const KJS_FAST_CALL { return m_next.get(); }
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
PassRefPtr<ClauseListNode> releaseNext() KJS_FAST_CALL { return m_next.release(); }
virtual Precedence precedence() const { ASSERT_NOT_REACHED(); return PrecExpression; }
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
JSValue* executeBlock(ExecState*, JSValue *input) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual Precedence precedence() const { ASSERT_NOT_REACHED(); return PrecExpression; }
private:
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
virtual JSValue* execute(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
private:
RefPtr<ExpressionNode> m_expr;
BreakpointCheckStatement(PassRefPtr<StatementNode>) KJS_FAST_CALL;
virtual JSValue* execute(ExecState*) KJS_FAST_CALL;
- virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
+ virtual void streamTo(SourceStream&) KJS_FAST_CALL;
virtual void optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;
private: