Reviewed by Darin.
[WebKit-https.git] / JavaScriptCore / kjs / nodes.h
index af2894e10462c89b6933f2b79a49145aa9fe01b0..45fbe5b8ef915dc2838c54cb610462173cdad18f 100644 (file)
 #define KJS_FAST_CALL
 #endif
 
 #define KJS_FAST_CALL
 #endif
 
+#if COMPILER(GCC)
+#define KJS_NO_INLINE __attribute__((noinline))
+#else
+#define KJS_NO_INLINE
+#endif
+
 namespace KJS {
 
   class ProgramNode;
 namespace KJS {
 
   class ProgramNode;
@@ -783,7 +789,7 @@ namespace KJS {
     RefPtr<Node> expr;
   };
 
     RefPtr<Node> expr;
   };
 
-  class VarDeclNode : public Node {
+  class VarDeclNode: public Node {
   public:
     enum Type { Variable, Constant };
     VarDeclNode(const Identifier &id, AssignExprNode *in, Type t) KJS_FAST_CALL;
   public:
     enum Type { Variable, Constant };
     VarDeclNode(const Identifier &id, AssignExprNode *in, Type t) KJS_FAST_CALL;
@@ -791,6 +797,7 @@ namespace KJS {
     virtual void processVarDecls(ExecState*) KJS_FAST_CALL;
     virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
   private:
     virtual void processVarDecls(ExecState*) KJS_FAST_CALL;
     virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
   private:
+    JSValue* handleSlowCase(ExecState*, const ScopeChain&, JSValue*) KJS_FAST_CALL KJS_NO_INLINE;
     Type varType;
     Identifier ident;
     RefPtr<AssignExprNode> init;
     Type varType;
     Identifier ident;
     RefPtr<AssignExprNode> init;