2008-06-04 Sam Weinig <sam@webkit.org>
authorweinig@apple.com <weinig@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 5 Jun 2008 05:36:55 +0000 (05:36 +0000)
committerweinig@apple.com <weinig@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 5 Jun 2008 05:36:55 +0000 (05:36 +0000)
        Reviewed by Maciej Stachowiak.

        Big cleanup of formatting and whitespace.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@34372 268f45cc-cd09-0410-ab3c-d52691b4dbfc

32 files changed:
JavaScriptCore/ChangeLog
JavaScriptCore/VM/CodeBlock.cpp
JavaScriptCore/VM/CodeBlock.h
JavaScriptCore/VM/CodeGenerator.cpp
JavaScriptCore/VM/CodeGenerator.h
JavaScriptCore/VM/ExceptionHelpers.cpp
JavaScriptCore/VM/ExceptionHelpers.h
JavaScriptCore/VM/Instruction.h
JavaScriptCore/VM/JSPropertyNameIterator.cpp
JavaScriptCore/VM/JSPropertyNameIterator.h
JavaScriptCore/VM/LabelID.h
JavaScriptCore/VM/Machine.cpp
JavaScriptCore/VM/Machine.h
JavaScriptCore/VM/Opcode.h
JavaScriptCore/VM/Register.h
JavaScriptCore/VM/RegisterFile.cpp
JavaScriptCore/VM/RegisterFile.h
JavaScriptCore/VM/RegisterFileStack.cpp
JavaScriptCore/VM/RegisterFileStack.h
JavaScriptCore/VM/RegisterID.h
JavaScriptCore/VM/SegmentedVector.h
JavaScriptCore/kjs/CallData.h
JavaScriptCore/kjs/JSNotAnObject.cpp
JavaScriptCore/kjs/JSNotAnObject.h
JavaScriptCore/kjs/JSVariableObject.h
JavaScriptCore/kjs/LocalStorageEntry.h
JavaScriptCore/kjs/PropertyNameArray.h
JavaScriptCore/kjs/SourceProvider.h
JavaScriptCore/kjs/SourceRange.h
JavaScriptCore/kjs/scope_chain.h
JavaScriptCore/kjs/value.cpp
JavaScriptCore/kjs/value.h

index accdaf96825e71c162d7700d2d9f12280e3522fe..2b3ba336237e229432438cb05c73edde6bf6dcb3 100644 (file)
@@ -1,3 +1,9 @@
+2008-06-04  Sam Weinig  <sam@webkit.org>
+
+        Reviewed by Maciej Stachowiak.
+
+        Big cleanup of formatting and whitespace.
+
 2008-06-04  Cameron Zwarich  <cwzwarich@uwaterloo.ca>
 
         Reviewed by Oliver.
index 45a49ce741028ee3f6635c7bb6d823127aeb3adb..3f98e22681e030d38fe5c68a88c4857a7a7edb6b 100644 (file)
@@ -97,21 +97,21 @@ static CString regexpName(int re, RegExp* regexp)
 
 NEVER_INLINE static const char* debugHookName(int debugHookID)
 {
-    switch((DebugHookID)debugHookID) {
-    case DidEnterCallFrame:
-        return "didEnterCallFrame";
-    case WillLeaveCallFrame:
-        return "willLeaveCallFrame";
-    case WillExecuteStatement:
-        return "willExecuteStatement";
-    case WillExecuteProgram:
-        return "willExecuteProgram";
-    case DidExecuteProgram:
-        return "didExecuteProgram";
-    case DidReachBreakpoint:
-        return "didReachBreakpoint";
+    switch (static_cast<DebugHookID>(debugHookID)) {
+        case DidEnterCallFrame:
+            return "didEnterCallFrame";
+        case WillLeaveCallFrame:
+            return "willLeaveCallFrame";
+        case WillExecuteStatement:
+            return "willExecuteStatement";
+        case WillExecuteProgram:
+            return "willExecuteProgram";
+        case DidExecuteProgram:
+            return "didExecuteProgram";
+        case DidReachBreakpoint:
+            return "didReachBreakpoint";
     }
-    
+
     ASSERT_NOT_REACHED();
     return "";
 }
index 7d82f4ec12b30850607eed816995da6c6c85cf2d..ad44731ebb2f1987ba9a2f5c8ed8e6e072edd768 100644 (file)
@@ -26,7 +26,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
+
 #ifndef CodeBlock_h
 #define CodeBlock_h
 
@@ -89,7 +89,7 @@ namespace KJS {
         Vector<RefPtr<FuncDeclNode> > functions;
         Vector<RefPtr<FuncExprNode> > functionExpressions;
         Vector<JSValue*> jsValues;
-        Vector<RefPtr<RegExp> > regexps;        
+        Vector<RefPtr<RegExp> > regexps;
         Vector<HandlerInfo> exceptionHandlers;
         Vector<LineInfo> lineInfo;
 
index c92814b6b76bf289f67b443ff64cd43bbec830f1..4388ad114231f009bcd0b3acece02589369356b6 100644 (file)
@@ -39,16 +39,16 @@ namespace KJS {
 
 /*
     The layout of a register frame looks like this:
-    
-    For 
-    
+
+    For
+
     function f(x, y) {
         var v1;
         function g() { }
         var v2;
         return (x) * (y);
     }
-    
+
     assuming (x) and (y) generated temporaries t1 and t2, you would have
 
     ------------------------------------
@@ -57,39 +57,39 @@ namespace KJS {
     | -5 | -4 | -3 | -2 | -1 | +0 | +1 | <-- register index
     ------------------------------------
     | params->|<-locals      | temps->
-    
+
     Because temporary registers are allocated in a stack-like fashion, we
     can reclaim them with a simple popping algorithm. The same goes for labels.
     (We never reclaim parameter or local registers, because parameters and
     locals are DontDelete.)
-    
+
     The register layout before a function call looks like this:
-    
+
     For
-    
+
     function f(x, y)
     {
     }
-    
+
     f(1);
-    
+
     >                        <------------------------------
     <                        >  reserved: call frame  |  1 | <-- value held
     >         >snip<         <------------------------------
     <                        > +0 | +1 | +2 | +3 | +4 | +5 | <-- register index
     >                        <------------------------------
-    | params->|<-locals      | temps->    
-    
+    | params->|<-locals      | temps->
+
     The call instruction fills in the "call frame" registers. It also pads
     missing arguments at the end of the call:
-    
+
     >                        <-----------------------------------
     <                        >  reserved: call frame  |  1 |  ? | <-- value held ("?" stands for "undefined")
     >         >snip<         <-----------------------------------
     <                        > +0 | +1 | +2 | +3 | +4 | +5 | +6 | <-- register index
     >                        <-----------------------------------
     | params->|<-locals      | temps->
-    
+
     After filling in missing arguments, the call instruction sets up the new
     stack frame to overlap the end of the old stack frame:
 
@@ -99,9 +99,9 @@ namespace KJS {
                              | -7 | -6 | -5 | -4 | -3 | -2 | -1 <                        > <-- register index
                              |---------------------------------->                        <
                              |                        | params->|<-locals       | temps->
-    
+
     That way, arguments are "copied" into the callee's stack frame for free.
-    
+
     If the caller supplies too many arguments, this trick doesn't work. The
     extra arguments protrude into space reserved for locals and temporaries.
     In that case, the call instruction makes a real copy of the call frame header,
@@ -110,7 +110,6 @@ namespace KJS {
     extra arguments, because the "arguments" object may access them later.)
     This copying strategy ensures that all named values will be at the indices
     expected by the callee.
-
 */
 
 #ifndef NDEBUG
@@ -132,7 +131,7 @@ void CodeGenerator::generate()
     m_codeBlock->thisRegister = m_thisRegister.index();
     if (m_shouldEmitDebugHooks)
         m_codeBlock->needsFullScopeChain = true;
-    
+
     m_scopeNode->emitCode(*this);
 
 #ifndef NDEBUG
@@ -195,7 +194,7 @@ CodeGenerator::CodeGenerator(ProgramNode* programNode, const Debugger* debugger,
     m_nextVar -= size;
 
     JSGlobalObject* globalObject = scopeChain.globalObject();
-    
+
     ExecState* exec = globalObject->globalExec();
     
     // FIXME: Move the execution-related parts of this code to Machine::execute.
@@ -206,7 +205,7 @@ CodeGenerator::CodeGenerator(ProgramNode* programNode, const Debugger* debugger,
             globalObject->removeDirect(funcDecl->m_ident); // Make sure our new function is not shadowed by an old property.
             emitNewFunction(addVar(funcDecl->m_ident, false), funcDecl);
         }
-        
+
         for (size_t i = 0; i < varStack.size(); ++i) {
             if (!globalObject->hasProperty(exec, varStack[i].first))
                 emitLoad(addVar(varStack[i].first, varStack[i].second & DeclarationStacks::IsConstant), jsUndefined());
@@ -244,7 +243,7 @@ CodeGenerator::CodeGenerator(FunctionBodyNode* functionBody, const Debugger* deb
     for (size_t i = 0; i < functionStack.size(); ++i) {
         FuncDeclNode* funcDecl = functionStack[i].get();
         const Identifier& ident = funcDecl->m_ident;
-        
+
         m_functions.add(ident.ustring().rep());
         emitNewFunction(addVar(ident, false), funcDecl);
     }
@@ -254,7 +253,7 @@ CodeGenerator::CodeGenerator(FunctionBodyNode* functionBody, const Debugger* deb
         const Identifier& ident = varStack[i].first;
         if (ident == m_propertyNames->arguments)
             continue;
-        
+
         RegisterID* r0;
         if (addVar(ident, r0, varStack[i].second & DeclarationStacks::IsConstant))
             emitLoad(r0, jsUndefined());
@@ -305,7 +304,7 @@ RegisterID* CodeGenerator::addParameter(const Identifier& ident)
         m_locals[localsIndex(m_nextParameter)].setIndex(m_nextParameter);
         result = &(m_locals[localsIndex(m_nextParameter)]);
     }
-    
+
     // To maintain the calling convention, we have to allocate unique space for
     // each parameter, even if the parameter doesn't make it into the symbol table.
     ++m_nextParameter;
@@ -335,10 +334,10 @@ RegisterID* CodeGenerator::registerForLocalConstInit(const Identifier& ident)
 {
     if (m_codeType == EvalCode)
         return 0;
-    
+
     SymbolTableEntry entry = symbolTable().get(ident.ustring().rep());
     ASSERT(!entry.isEmpty());
-    
+
     return &m_locals[localsIndex(entry.getIndex())];
 }
 
@@ -429,7 +428,7 @@ unsigned CodeGenerator::addConstant(const Identifier& ident)
     pair<IdentifierMap::iterator, bool> result = m_identifierMap.add(rep, m_codeBlock->identifiers.size());
     if (result.second) // new entry
         m_codeBlock->identifiers.append(rep);
-    
+
     return result.first->second;
 }
 
@@ -438,7 +437,7 @@ unsigned CodeGenerator::addConstant(JSValue* v)
     pair<JSValueMap::iterator, bool> result = m_jsValueMap.add(v, m_codeBlock->jsValues.size());
     if (result.second) // new entry
         m_codeBlock->jsValues.append(v);
-    
+
     return result.first->second;
 }
 
@@ -751,7 +750,7 @@ bool CodeGenerator::findScopedProperty(const Identifier& property, int& index, s
 
     for (; iter != end; ++iter, ++depth) {
         JSObject* currentScope = *iter;
-        if (!currentScope->isVariableObject()) 
+        if (!currentScope->isVariableObject())
             break;
         JSVariableObject* currentVariableObject = static_cast<JSVariableObject*>(currentScope);
         SymbolTableEntry entry = currentVariableObject->symbolTable().get(property.ustring().rep());
@@ -797,7 +796,7 @@ RegisterID* CodeGenerator::emitResolve(RegisterID* dst, const Identifier& proper
     // Directly index the property lookup across multiple scopes.  Yay!
     return emitGetScopedVar(dst, depth, index);
 }
-    
+
 RegisterID* CodeGenerator::emitGetScopedVar(RegisterID* dst, size_t depth, int index)
 {
     instructions().append(machine().getOpcode(op_get_scoped_var));
@@ -806,7 +805,7 @@ RegisterID* CodeGenerator::emitGetScopedVar(RegisterID* dst, size_t depth, int i
     instructions().append(depth);
     return dst;
 }
-    
+
 RegisterID* CodeGenerator::emitPutScopedVar(size_t depth, int index, RegisterID* value)
 {
     instructions().append(machine().getOpcode(op_put_scoped_var));
@@ -823,7 +822,7 @@ RegisterID* CodeGenerator::emitResolveBase(RegisterID* dst, const Identifier& pr
     instructions().append(addConstant(property));
     return dst;
 }
-    
+
 RegisterID* CodeGenerator::emitResolveWithBase(RegisterID* baseDst, RegisterID* propDst, const Identifier& property)
 {
     instructions().append(machine().getOpcode(op_resolve_with_base));
@@ -964,7 +963,7 @@ RegisterID* CodeGenerator::emitCall(OpcodeID opcodeID, RegisterID* dst, Register
 
     RefPtr<RegisterID> refFunc = func;
     RefPtr<RegisterID> refBase = base;
-    
+
     // Reserve space for call frame.
     Vector<RefPtr<RegisterID>, Machine::CallFrameHeaderSize> callFrame;
     for (int i = 0; i < Machine::CallFrameHeaderSize; ++i)
@@ -1106,7 +1105,7 @@ JumpContext* CodeGenerator::jumpContextForContinue(const Identifier& label)
         }
         return 0;
     }
-    
+
     for (int i = m_jumpContextStack.size() - 1; i >= 0; i--) {
         JumpContext* scope = &m_jumpContextStack[i];
         if (scope->labels->contains(label))
@@ -1128,7 +1127,7 @@ JumpContext* CodeGenerator::jumpContextForBreak(const Identifier& label)
         }
         return 0;
     }
-    
+
     for (int i = m_jumpContextStack.size() - 1; i >= 0; i--) {
         JumpContext* scope = &m_jumpContextStack[i];
         if (scope->labels->contains(label))
@@ -1151,11 +1150,11 @@ PassRefPtr<LabelID> CodeGenerator::emitComplexJumpScopes(LabelID* target, Contro
         }
 
         if (nNormalScopes) {
-            // We need to remove a number of dynamic scopes to get to the next 
+            // We need to remove a number of dynamic scopes to get to the next
             // finally block
             instructions().append(machine().getOpcode(op_jmp_scopes));
             instructions().append(nNormalScopes);
-            
+
             // If topScope == bottomScope then there isn't actually a finally block
             // left to emit, so make the jmp_scopes jump directly to the target label
             if (topScope == bottomScope) {
@@ -1163,7 +1162,7 @@ PassRefPtr<LabelID> CodeGenerator::emitComplexJumpScopes(LabelID* target, Contro
                 return target;
             }
 
-            // Otherwise we just use jmp_scopes to pop a group of scopes and go 
+            // Otherwise we just use jmp_scopes to pop a group of scopes and go
             // to the next instruction
             RefPtr<LabelID> nextInsn = newLabel();
             instructions().append(nextInsn->offsetFrom(instructions().size()));
@@ -1225,7 +1224,7 @@ RegisterID* CodeGenerator::emitCatch(RegisterID* targetRegister, LabelID* start,
     instructions().append(targetRegister->index());
     return targetRegister;
 }
-    
+
 void CodeGenerator::emitThrow(RegisterID* exception)
 {
     instructions().append(machine().getOpcode(op_throw));
index 9cefa49dea1a256eea5b5b05a941791481aa8736..bec053ed4e56f7ad1ebf6e2fd924136fbbd419d7 100644 (file)
@@ -37,8 +37,8 @@
 #include "LabelID.h"
 #include "Machine.h"
 #include "RegisterID.h"
-#include "SymbolTable.h"
 #include "SegmentedVector.h"
+#include "SymbolTable.h"
 #include "debugger.h"
 #include "nodes.h"
 #include <wtf/PassRefPtr.h>
@@ -63,19 +63,19 @@ namespace KJS {
         LabelID* finallyAddr;
         RegisterID* retAddrDst;
     };
-    
+
     struct ControlFlowContext {
         bool isFinallyBlock;
         FinallyContext finallyContext;
     };
-    
+
     class CodeGenerator {
     public:
         typedef DeclarationStacks::VarStack VarStack;
         typedef DeclarationStacks::FunctionStack FunctionStack;
-        
+
         static void setDumpsGeneratedCode(bool dumpsGeneratedCode);
-        
+
         CodeGenerator(ProgramNode*, const Debugger*, const ScopeChain&, SymbolTable*, CodeBlock*, VarStack&, FunctionStack&, bool canCreateGlobals);
         CodeGenerator(FunctionBodyNode*, const Debugger*, const ScopeChain&, SymbolTable*, CodeBlock*);
         CodeGenerator(EvalNode*, const Debugger*, const ScopeChain&, SymbolTable*, EvalCodeBlock*);
@@ -95,9 +95,9 @@ namespace KJS {
         RegisterID* registerForLocalConstInit(const Identifier&);
 
         // Searches the scope chain in an attempt to  statically locate the requested
-        // property.  Returns false if for any reason the property cannot be safely 
+        // property.  Returns false if for any reason the property cannot be safely
         // optimised at all.  Otherwise it will return the index and depth of the
-        // VariableObject that defines the property.  If the property cannot be found 
+        // VariableObject that defines the property.  If the property cannot be found
         // statically, depth will contain the depth of the scope chain where dynamic
         // lookup must begin.
         //
@@ -132,17 +132,18 @@ namespace KJS {
         RegisterID* tempDestination(RegisterID* dst) { return (dst && dst->isTemporary()) ? dst : newTemporary(); }
 
         // Returns the place to write the final output of an operation.
-        RegisterID* finalDestination(RegisterID* originalDst, RegisterID* tempDst = 0) 
-        { 
+        RegisterID* finalDestination(RegisterID* originalDst, RegisterID* tempDst = 0)
+        {
             if (originalDst)
                 return originalDst;
             if (tempDst && tempDst->isTemporary())
                 return tempDst;
-            return newTemporary(); 
+            return newTemporary();
         }
-        
-        RegisterID* destinationForAssignResult(RegisterID* dst) { 
-            if (dst && m_codeBlock->needsFullScopeChain) 
+
+        RegisterID* destinationForAssignResult(RegisterID* dst)
+        {
+            if (dst && m_codeBlock->needsFullScopeChain)
                 return dst->isTemporary() ? dst : newTemporary();
             return 0;
         }
@@ -150,12 +151,12 @@ namespace KJS {
         // moves src to dst if dst is not null and is different from src, otherwise just returns src
         RegisterID* moveToDestinationIfNeeded(RegisterID* dst, RegisterID* src) { return (dst && dst != src) ? emitMove(dst, src) : src; }
 
-
         PassRefPtr<LabelID> newLabel();
-        
+
         // The emitNode functions are just syntactic sugar for calling
         // Node::emitCode. They're the only functions that accept a NULL register.
-        RegisterID* emitNode(RegisterID* dst, Node* n) {
+        RegisterID* emitNode(RegisterID* dst, Node* n)
+        {
             // Node::emitCode assumes that dst, if provided, is either a local or a referenced temporary.
             ASSERT(!dst || !dst->isTemporary() || dst->refCount());
             if (!m_codeBlock->lineInfo.size() || m_codeBlock->lineInfo.last().lineNumber != n->lineNo()) {
@@ -182,14 +183,14 @@ namespace KJS {
                 emitNode(dst.get(), n);
                 return dst;
             }
-            
+
             return PassRefPtr<RegisterID>(emitNode(n));
         }
 
         RegisterID* emitLoad(RegisterID* dst, bool);
         RegisterID* emitLoad(RegisterID* dst, double);
         RegisterID* emitLoad(RegisterID* dst, JSValue*);
-        
+
         RegisterID* emitNewObject(RegisterID* dst);
         RegisterID* emitNewArray(RegisterID* dst);
 
@@ -265,21 +266,21 @@ namespace KJS {
 
         PassRefPtr<LabelID> emitJumpSubroutine(RegisterID* retAddrDst, LabelID*);
         void emitSubroutineReturn(RegisterID* retAddrSrc);
-        
+
         RegisterID* emitGetPropertyNames(RegisterID* dst, RegisterID* base);
         RegisterID* emitNextPropertyName(RegisterID* dst, RegisterID* iter, LabelID* target);
 
         RegisterID* emitCatch(RegisterID*, LabelID* start, LabelID* end);
         void emitThrow(RegisterID*);
         RegisterID* emitNewError(RegisterID* dst, ErrorType type, JSValue* message);
-        
+
         RegisterID* emitPushScope(RegisterID* scope);
         void emitPopScope();
-        
+
         void emitDebugHook(DebugHookID, int firstLine, int lastLine);
 
         int scopeDepth() { return m_dynamicScopeDepth + m_finallyDepth; }
-        
+
         void pushFinallyContext(LabelID* target, RegisterID* returnAddrDst);
         void popFinallyContext();
         bool inContinueContext() { return m_continueDepth > 0; };
@@ -289,8 +290,8 @@ namespace KJS {
         JumpContext* jumpContextForContinue(const Identifier&);
         JumpContext* jumpContextForBreak(const Identifier&);
 
-
         CodeType codeType() const { return m_codeType; }
+
     private:
         PassRefPtr<LabelID> emitComplexJumpScopes(LabelID* target, ControlFlowContext* topScope, ControlFlowContext* bottomScope);
         struct JSValueHashTraits : HashTraits<JSValue*> {
@@ -299,7 +300,7 @@ namespace KJS {
         };
 
         typedef HashMap<JSValue*, unsigned, DefaultHash<JSValue*>::Hash, JSValueHashTraits> JSValueMap;
-        
+
         struct IdentifierMapIndexHashTraits {
             typedef int TraitType;
             typedef IdentifierMapIndexHashTraits StorageTraits;
@@ -315,7 +316,7 @@ namespace KJS {
 
         // Maps a register index in the symbol table to a RegisterID index in m_locals.
         int localsIndex(int registerIndex) { return -registerIndex - 1; }
-        
+
         // Returns the RegisterID corresponding to ident.
         RegisterID* addVar(const Identifier& ident, bool isConstant)
         {
@@ -334,22 +335,22 @@ namespace KJS {
         unsigned addConstant(const Identifier&);
         unsigned addConstant(JSValue*);
         unsigned addRegExp(RegExp* r);
-        
+
         Vector<Instruction>& instructions() { return m_codeBlock->instructions; }
         SymbolTable& symbolTable() { return *m_symbolTable; }
         Vector<HandlerInfo>& exceptionHandlers() { return m_codeBlock->exceptionHandlers; }
-        
+
         bool shouldOptimizeLocals() { return (m_codeType != EvalCode) && !m_dynamicScopeDepth; }
         bool canOptimizeNonLocals() { return (m_codeType == FunctionCode) && !m_dynamicScopeDepth && !m_codeBlock->usesEval; }
 
         bool m_shouldEmitDebugHooks;
-        
+
         const ScopeChain* m_scopeChain;
         SymbolTable* m_symbolTable;
-        
+
         ScopeNode* m_scopeNode;
         CodeBlock* m_codeBlock;
-        
+
         HashSet<RefPtr<UString::Rep>, IdentifierRepHash> m_functions;
         RegisterID m_thisRegister;
         SegmentedVector<RegisterID, 512> m_locals;
@@ -358,7 +359,7 @@ namespace KJS {
         int m_finallyDepth;
         int m_dynamicScopeDepth;
         CodeType m_codeType;
-        
+
         Vector<JumpContext> m_jumpContextStack;
         int m_continueDepth;
         Vector<ControlFlowContext> m_scopeContextStack;
@@ -372,7 +373,7 @@ namespace KJS {
 
         CommonIdentifiers* m_propertyNames;
 
-#ifndef NDEBUG        
+#ifndef NDEBUG
         static bool s_dumpsGeneratedCode;
 #endif
     };
index bdce6c74b6e30266c0467cc65d4a571831381b0e..73d6b5d7f4111e2893aeb989688a5c9acb1c393f 100644 (file)
@@ -44,7 +44,7 @@ static void substitute(UString& string, const UString& substring)
     newString.append(string.substr(position + 2));
     string = newString;
 }
-    
+
 JSValue* createError(ExecState* exec, ErrorType e, const char* msg)
 {
     return Error::create(exec, e, msg, -1, -1, 0);
@@ -82,7 +82,7 @@ JSValue* createUndefinedVariableError(ExecState* exec, const Identifier& ident)
 {
     return createError(exec, ReferenceError, "Can't find variable: %s", ident);
 }
-    
+
 JSValue* createInvalidParamError(ExecState* exec, const char* op, JSValue* v)
 {
     UString message = "'%s' is not a valid argument for '%s'";
@@ -105,4 +105,4 @@ JSValue* createNotAFunctionError(ExecState* exec, JSValue* value, Node* expr)
     return createError(exec, TypeError, "Value %s does not allow function calls.", value);
 }
 
-}
+} // namespace KJS
index e425df300c76b6d03cda54e4b8ef43756fef1563..231f3b755e969e100025fa5d26099dcd8ef6c25e 100644 (file)
 #include "object.h"
 
 namespace KJS {
+
     class Node;
+
     JSValue* createStackOverflowError(ExecState*);
     JSValue* createUndefinedVariableError(ExecState*, const Identifier&);
     JSValue* createInvalidParamError(ExecState*, const char* op, JSValue*);
-    JSValue* createNotAConstructorError(ExecState* exec, JSValue* value, Node* expr);
-    JSValue* createNotAFunctionError(ExecState* exec, JSValue* value, Node* expr);
-}
+    JSValue* createNotAConstructorError(ExecState*, JSValue*, Node* expr);
+    JSValue* createNotAFunctionError(ExecState*, JSValue*, Node* expr);
+
+} // namespace KJS
 
-#endif
+#endif // ExceptionHelpers_h
index 9a40f1bc663d65690a1195cc9d534d07f578f038..060fb2abfd0d63b0cb57b554f527ebb04478675b 100644 (file)
@@ -25,7 +25,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
+
 #ifndef Instruction_h
 #define Instruction_h
 
@@ -36,13 +36,13 @@ namespace KJS {
     struct Instruction {
         Instruction(Opcode opcode) { u.opcode = opcode; }
         Instruction(int operand) { u.operand = operand; }
-            
+
         union {
             Opcode opcode;
             int operand;
         } u;
     };
-    
+
 } // namespace KJS
 
 #endif // Instruction_h
index 9085c893444a3a7c3afcbfcc3c8ab93446275ea7..0ccb886bb57e804afebb350f7fcd6a020dfba16f 100644 (file)
 #include "object.h"
 #include "PropertyNameArray.h"
 
-namespace KJS{
+namespace KJS {
 
 COMPILE_ASSERT(sizeof(JSPropertyNameIterator) <= CellSize<sizeof(void*)>::m_value, JSPropertyNameIteratorSizeASSERT);
-    
+
+JSPropertyNameIterator* JSPropertyNameIterator::create(ExecState* exec, JSValue* v)
+{
+    if (v->isUndefinedOrNull())
+        return new JSPropertyNameIterator(0, 0, 0);
+
+    JSObject* o = v->toObject(exec);
+    PropertyNameArray propertyNames;
+    o->getPropertyNames(exec, propertyNames);
+    size_t numProperties = propertyNames.size();
+    return new JSPropertyNameIterator(o, propertyNames.releaseIdentifiers(), numProperties);
+}
+
 JSPropertyNameIterator::JSPropertyNameIterator(JSObject* object, Identifier* propertyNames, size_t numProperties)
     : m_object(object)
     , m_propertyNames(propertyNames)
@@ -44,53 +56,62 @@ JSPropertyNameIterator::JSPropertyNameIterator(JSObject* object, Identifier* pro
     , m_end(propertyNames + numProperties)
 {
 }
-    
-JSType JSPropertyNameIterator::type() const { 
-    return UnspecifiedType; 
+
+JSPropertyNameIterator::~JSPropertyNameIterator()
+{
+    delete m_propertyNames;
+}
+
+JSType JSPropertyNameIterator::type() const
+{
+    return UnspecifiedType;
 }
 
-JSValue *JSPropertyNameIterator::toPrimitive(ExecState *, JSType) const 
+JSValue* JSPropertyNameIterator::toPrimitive(ExecState*, JSType) const
 {
     ASSERT_NOT_REACHED();
-    return 0; 
+    return 0;
 }
 
-bool JSPropertyNameIterator::getPrimitiveNumber(ExecState*, double&, JSValue*&) { 
-    ASSERT_NOT_REACHED(); 
+bool JSPropertyNameIterator::getPrimitiveNumber(ExecState*, double&, JSValue*&)
+{
+    ASSERT_NOT_REACHED();
     return false;
 }
 
-bool JSPropertyNameIterator::toBoolean(ExecState *) const { 
-    ASSERT_NOT_REACHED(); 
+bool JSPropertyNameIterator::toBoolean(ExecState*) const
+{
+    ASSERT_NOT_REACHED();
     return false;
 }
 
-double JSPropertyNameIterator::toNumber(ExecState *) const 
+double JSPropertyNameIterator::toNumber(ExecState*) const
 {
     ASSERT_NOT_REACHED();
-    return 0; 
+    return 0;
 }
 
-UString JSPropertyNameIterator::toString(ExecState *) const 
+UString JSPropertyNameIterator::toString(ExecState*) const
 {
     ASSERT_NOT_REACHED();
-    return ""; 
+    return "";
 }
 
-JSObject *JSPropertyNameIterator::toObject(ExecState *) const 
+JSObject* JSPropertyNameIterator::toObject(ExecState*) const
 {
     ASSERT_NOT_REACHED();
-    return 0; 
+    return 0;
 }
 
-void JSPropertyNameIterator::mark() { 
+void JSPropertyNameIterator::mark()
+{
     JSCell::mark();
     if (m_object && !m_object->marked())
         m_object->mark();
 }
 
 JSValue* JSPropertyNameIterator::next(ExecState* exec)
-{ 
+{
     while (m_position != m_end) {
         if (m_object->hasProperty(exec, *m_position))
             return jsOwnedString((*m_position++).ustring());;
@@ -100,29 +121,11 @@ JSValue* JSPropertyNameIterator::next(ExecState* exec)
     return 0;
 }
 
-void JSPropertyNameIterator::invalidate() 
-{ 
-    delete m_propertyNames; 
+void JSPropertyNameIterator::invalidate()
+{
+    delete m_propertyNames;
     m_object = 0;
     m_propertyNames = 0;
 }
 
-JSPropertyNameIterator::~JSPropertyNameIterator()
-{
-    delete m_propertyNames; 
-}
-
-
-JSPropertyNameIterator* JSPropertyNameIterator::create(ExecState* exec, JSValue* v)
-{
-    if (v->isUndefinedOrNull())
-        return new JSPropertyNameIterator(0, 0, 0);
-
-    JSObject* o = v->toObject(exec);
-    PropertyNameArray propertyNames;
-    o->getPropertyNames(exec, propertyNames);    
-    size_t numProperties = propertyNames.size();
-    return new JSPropertyNameIterator(o, propertyNames.releaseIdentifiers(), numProperties);
-}
-
-}
+} // namespace KJS
index 983fda44af287c0d008aba08985be86394596f33..530d11abc0853d2f335dc727c579641b0c346fb4 100644 (file)
 #include "value.h"
 
 namespace KJS {
-    class JSObject;
+
     class Identifier;
+    class JSObject;
 
     class JSPropertyNameIterator : public JSCell {
     public:
+        static JSPropertyNameIterator* create(ExecState*, JSValue*);
+
+        virtual ~JSPropertyNameIterator();
+
         virtual JSType type() const;
-        virtual JSValue *toPrimitive(ExecState *, JSType) const;
+        virtual JSValue* toPrimitive(ExecState*, JSType) const;
         virtual bool getPrimitiveNumber(ExecState*, double&, JSValue*&);
-        virtual bool toBoolean(ExecState *) const;
-        virtual double toNumber(ExecState *) const;
-        virtual UString toString(ExecState *) const;
-        virtual JSObject *toObject(ExecState *) const;
-        
+        virtual bool toBoolean(ExecState*) const;
+        virtual double toNumber(ExecState*) const;
+        virtual UString toString(ExecState*) const;
+        virtual JSObject* toObject(ExecState*) const;
+
         virtual void mark();
-        
-        JSValue* next(ExecState* exec);        
+
+        JSValue* next(ExecState*);
         void invalidate();
-        
-        virtual ~JSPropertyNameIterator();
-        
-        static JSPropertyNameIterator* create(ExecState*, JSValue*);
+
     private:
-        JSPropertyNameIterator(JSObject* object, Identifier* propertyNames, size_t numProperties);
+        JSPropertyNameIterator(JSObject*, Identifier* propertyNames, size_t numProperties);
+
         JSObject* m_object;
         Identifier* m_propertyNames;
         Identifier* m_position;
         Identifier* m_end;
     };
-}
 
-#endif
+} // namespace KJS
+
+#endif // JSPropertyNameIterator_h
index 5d0d0c8fda0dbaa5e844f43fbf1f113fa629912d..6edb5e20f7111198fd46255cd46a003b44cf9e18 100644 (file)
@@ -25,7 +25,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
+
 #ifndef LabelID_h
 #define LabelID_h
 
@@ -100,15 +100,15 @@ namespace KJS {
 
     private:
         typedef Vector<int, 8> JumpVector;
-        
+
         static const unsigned invalidLocation = UINT_MAX;
-        
+
         int m_refCount;
         unsigned m_location;
         CodeBlock* m_codeBlock;
         mutable JumpVector m_unresolvedJumps;
     };
-    
+
 } // namespace KJS
 
 #endif // LabelID_h
index 2511862854e96db4f194d398883c1cf8eee3623b..fcbdc139a5f05f82e8b4d567417826bfad06fb0e 100644 (file)
@@ -80,15 +80,15 @@ bool getCallerFunctionOffset(Register** registerBase, int callOffset, int& calle
 static int depth(ScopeChain& sc)
 {
     int scopeDepth = 0;
-    ScopeChainIterator iter = sc.begin(); 
-    ScopeChainIterator end = sc.end(); 
+    ScopeChainIterator iter = sc.begin();
+    ScopeChainIterator end = sc.end();
     while (!(*iter)->isVariableObject()) {
         ++iter;
         ++scopeDepth;
     }
     return scopeDepth;
 }
-    
+
 static inline bool jsLess(ExecState* exec, JSValue* v1, JSValue* v2)
 {
     if (JSImmediate::areBothImmediateNumbers(v1, v2))
@@ -218,13 +218,13 @@ static bool NEVER_INLINE resolve(ExecState* exec, Instruction* vPC, Register* r,
     exceptionValue = createUndefinedVariableError(exec, ident);
     return false;
 }
-    
+
 static bool NEVER_INLINE resolve_skip(ExecState* exec, Instruction* vPC, Register* r, ScopeChainNode* scopeChain, CodeBlock* codeBlock, JSValue*& exceptionValue)
 {
     int dst = (vPC + 1)->u.operand;
     int property = (vPC + 2)->u.operand;
     int skip = (vPC + 3)->u.operand + codeBlock->needsFullScopeChain;
-    
+
     ScopeChainIterator iter = scopeChain->begin();
     ScopeChainIterator end = scopeChain->end();
     ASSERT(iter != end);
@@ -279,14 +279,14 @@ static bool NEVER_INLINE resolveBaseAndProperty(ExecState* exec, Instruction* vP
     int baseDst = (vPC + 1)->u.operand;
     int propDst = (vPC + 2)->u.operand;
     int property = (vPC + 3)->u.operand;
-    
+
     ScopeChainIterator iter = scopeChain->begin();
     ScopeChainIterator end = scopeChain->end();
-    
+
     // FIXME: add scopeDepthIsZero optimization
-    
+
     ASSERT(iter != end);
-    
+
     Identifier& ident = codeBlock->identifiers[property];
     JSObject* base;
     do {
@@ -297,13 +297,13 @@ static bool NEVER_INLINE resolveBaseAndProperty(ExecState* exec, Instruction* vP
             exceptionValue = exec->exception();
             if (exceptionValue)
                 return false;
-            r[propDst].u.jsValue = result;   
+            r[propDst].u.jsValue = result;
             r[baseDst].u.jsValue = base;
             return true;
         }
         ++iter;
     } while (iter != end);
-    
+
     exceptionValue = createUndefinedVariableError(exec, ident);
     return false;
 }
@@ -316,11 +316,11 @@ static bool NEVER_INLINE resolveBaseAndFunc(ExecState* exec, Instruction* vPC, R
 
     ScopeChainIterator iter = scopeChain->begin();
     ScopeChainIterator end = scopeChain->end();
-    
+
     // FIXME: add scopeDepthIsZero optimization
-    
+
     ASSERT(iter != end);
-    
+
     Identifier& ident = codeBlock->identifiers[property];
     JSObject* base;
     do {
@@ -339,7 +339,7 @@ static bool NEVER_INLINE resolveBaseAndFunc(ExecState* exec, Instruction* vPC, R
             exceptionValue = exec->exception();
             if (exceptionValue)
                 return false;
-            
+
             r[baseDst].u.jsValue = thisObj;
             r[funcDst].u.jsValue = result;
             return true;
@@ -384,7 +384,7 @@ ALWAYS_INLINE Register* slideRegisterWindowForCall(ExecState* exec, CodeBlock* n
             return *registerBase + oldOffset;
         }
         r = (*registerBase) + registerOffset;
-        
+
         int omittedArgCount = newCodeBlock->numParameters - argc;
         Register* endOfParams = r - newCodeBlock->numVars;
         for (Register* it = endOfParams - omittedArgCount; it != endOfParams; ++it)
@@ -399,7 +399,7 @@ ALWAYS_INLINE Register* slideRegisterWindowForCall(ExecState* exec, CodeBlock* n
             return *registerBase + oldOffset;
         }
         r = (*registerBase) + registerOffset;
-        
+
         Register* it = r - newCodeBlock->numLocals - Machine::CallFrameHeaderSize - shift;
         Register* end = it + Machine::CallFrameHeaderSize + newCodeBlock->numParameters;
         for ( ; it != end; ++it)
@@ -435,10 +435,10 @@ static NEVER_INLINE JSValue* callEval(ExecState* exec, JSObject* thisObj, ScopeC
         return jsUndefined();
 
     JSValue* program = r[argv + 1].u.jsValue;
-    
+
     if (!program->isString())
         return program;
-    
+
     Profiler** profiler = Profiler::enabledProfilerReference();
     if (*profiler)
         (*profiler)->willExecute(exec, scopeChain->globalObject()->evalFunction());
@@ -447,7 +447,7 @@ static NEVER_INLINE JSValue* callEval(ExecState* exec, JSObject* thisObj, ScopeC
     int errLine;
     UString errMsg;
     RefPtr<EvalNode> evalNode = parser().parse<EvalNode>(exec, UString(), 1, UStringSourceProvider::create(static_cast<StringImp*>(program)->value()), &sourceId, &errLine, &errMsg);
-    
+
     if (!evalNode) {
         exceptionValue = Error::create(exec, SyntaxError, errMsg, errLine, sourceId, NULL);
         if (*profiler)
@@ -490,10 +490,10 @@ void Machine::dumpRegisters(const CodeBlock* codeBlock, RegisterFile* registerFi
     printf("----------------------------------------\n");
     printf("     use      |   address  |    value   \n");
     printf("----------------------------------------\n");
-    
+
     const Register* it;
     const Register* end;
-    
+
     if (isGlobalCallFrame(registerFile->basePointer(), r)) {
         it = r - registerFile->numGlobalSlots();
         end = r;
@@ -514,7 +514,7 @@ void Machine::dumpRegisters(const CodeBlock* codeBlock, RegisterFile* registerFi
             } while (it != end);
             printf("----------------------------------------\n");
         }
-        
+
         end = it + codeBlock->numParameters;
         if (it != end) {
             do {
@@ -558,7 +558,7 @@ NEVER_INLINE bool Machine::unwindCallFrame(ExecState* exec, JSValue* exceptionVa
 {
     CodeBlock* oldCodeBlock = codeBlock;
     Register* callFrame = r - oldCodeBlock->numLocals - CallFrameHeaderSize;
-    
+
     if (Debugger* debugger = exec->dynamicGlobalObject()->debugger()) {
         DebuggerCallFrame debuggerCallFrame(this, exec->dynamicGlobalObject(), codeBlock, scopeChain, exceptionValue, registerBase, r - *registerBase);
         if (!isGlobalCallFrame(registerBase, r) && callFrame[Callee].u.jsObject) // Check for global and eval code
@@ -576,7 +576,7 @@ NEVER_INLINE bool Machine::unwindCallFrame(ExecState* exec, JSValue* exceptionVa
 
     if (oldCodeBlock->needsFullScopeChain)
         scopeChain->deref();
-    
+
     if (isGlobalCallFrame(registerBase, r))
         return false;
 
@@ -619,15 +619,16 @@ NEVER_INLINE Instruction* Machine::throwException(ExecState* exec, JSValue* exce
 
     // Calculate an exception handler vPC, unwinding call frames as necessary.
 
-    int scopeDepth;        
+    int scopeDepth;
     Instruction* handlerVPC;
 
-    while (!codeBlock->getHandlerForVPC(vPC, handlerVPC, scopeDepth))
+    while (!codeBlock->getHandlerForVPC(vPC, handlerVPC, scopeDepth)) {
         if (!unwindCallFrame(exec, exceptionValue, registerBase, vPC, codeBlock, k, scopeChain, r))
             return 0;
+    }
 
     // Now unwind the scope chain within the exception handler's call frame.
-    
+
     ScopeChain sc(scopeChain);
     int scopeDelta = depth(sc) - scopeDepth;
     ASSERT(scopeDelta >= 0);
@@ -658,7 +659,7 @@ JSValue* Machine::execute(ProgramNode* programNode, ExecState* exec, ScopeChainN
     Register* r = (*registerFile->basePointer());
 
     r[ProgramCodeThisRegister].u.jsValue = thisObj;
-    
+
     if (codeBlock->needsFullScopeChain)
         scopeChain = scopeChain->copy();
 
@@ -691,22 +692,22 @@ JSValue* Machine::execute(FunctionBodyNode* functionBodyNode, ExecState* exec, F
 
     int argv = CallFrameHeaderSize;
     int argc = args.size() + 1; // implicit "this" parameter
-    
+
     size_t oldSize = registerFile->size();
     if (!registerFile->grow(oldSize + CallFrameHeaderSize + argc)) {
         *exception = createStackOverflowError(exec);
         return 0;
     }
-        
+
     Register** registerBase = registerFile->basePointer();
     int registerOffset = oldSize;
     int callFrameOffset = registerOffset;
     Register* callFrame = (*registerBase) + callFrameOffset;
-    
+
     // put args in place, including "this"
     Register* dst = callFrame + CallFrameHeaderSize;
     (*dst).u.jsValue = thisObj;
-    
+
     List::const_iterator end = args.end();
     for (List::const_iterator it = args.begin(); it != end; ++it)
         (*++dst).u.jsValue = *it;
@@ -721,10 +722,10 @@ JSValue* Machine::execute(FunctionBodyNode* functionBodyNode, ExecState* exec, F
         return 0;
     }
 
-    scopeChain = scopeChainForCall(functionBodyNode, newCodeBlock, scopeChain, registerBase, r);            
+    scopeChain = scopeChainForCall(functionBodyNode, newCodeBlock, scopeChain, registerBase, r);
 
     ExecState newExec(exec, this, registerFile, scopeChain, callFrameOffset);
-    
+
     Profiler** profiler = Profiler::enabledProfilerReference();
     if (*profiler)
         (*profiler)->willExecute(exec, function);
@@ -745,7 +746,7 @@ JSValue* Machine::execute(EvalNode* evalNode, ExecState* exec, JSObject* thisObj
     }
 
     EvalCodeBlock* codeBlock = &evalNode->code(scopeChain);
-    
+
     JSVariableObject* variableObject;
     for (ScopeChainNode* node = scopeChain; ; node = node->next) {
         ASSERT(node);
@@ -754,7 +755,7 @@ JSValue* Machine::execute(EvalNode* evalNode, ExecState* exec, JSObject* thisObj
             break;
         }
     }
-    
+
     const Node::VarStack& varStack = codeBlock->ownerNode->varStack();
     Node::VarStack::const_iterator varStackEnd = varStack.end();
     for (Node::VarStack::const_iterator it = varStack.begin(); it != varStackEnd; ++it) {
@@ -762,12 +763,12 @@ JSValue* Machine::execute(EvalNode* evalNode, ExecState* exec, JSObject* thisObj
         if (!variableObject->hasProperty(exec, ident))
             variableObject->put(exec, ident, jsUndefined());
     }
-    
+
     const Node::FunctionStack& functionStack = codeBlock->ownerNode->functionStack();
     Node::FunctionStack::const_iterator functionStackEnd = functionStack.end();
     for (Node::FunctionStack::const_iterator it = functionStack.begin(); it != functionStackEnd; ++it)
         variableObject->put(exec, (*it)->m_ident, (*it)->makeFunction(exec, scopeChain));
-    
+
     size_t oldSize = registerFile->size();
     size_t newSize = registerOffset + codeBlock->numVars + codeBlock->numTemporaries + CallFrameHeaderSize;
     if (!registerFile->grow(newSize)) {
@@ -776,7 +777,7 @@ JSValue* Machine::execute(EvalNode* evalNode, ExecState* exec, JSObject* thisObj
     }
 
     Register* callFrame = *registerFile->basePointer() + registerOffset;
-    
+
     // put call frame in place, using a 0 codeBlock to indicate a built-in caller
     initializeCallFrame(callFrame, 0, 0, 0, registerOffset, 0, 0, 0, 0, 0);
 
@@ -888,7 +889,7 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
     Instruction* vPC = codeBlock->instructions.begin();
     JSValue** k = codeBlock->jsValues.data();
     Profiler** enabledProfilerReference = Profiler::enabledProfilerReference();
-    
+
 #if HAVE(COMPUTED_GOTO)
     // Yet another hack around GCC's various foibles, in this case fetching the
     // profiler reference results in a regression.  Removing this indirection
@@ -921,7 +922,7 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
 #else
     #define BEGIN_OPCODE(opcode) case opcode:
 #endif
-    while(1) // iterator loop begins
+    while (1) // iterator loop begins
     switch (vPC->u.opcode)
 #endif
     {
@@ -933,7 +934,7 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
         int dst = (++vPC)->u.operand;
         int src = (++vPC)->u.operand;
         r[dst].u.jsValue = k[src];
-        
+
         ++vPC;
         NEXT_OPCODE;
     }
@@ -945,7 +946,7 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
         */
         int dst = (++vPC)->u.operand;
         r[dst].u.jsValue = scopeChain->globalObject()->objectConstructor()->construct(exec, exec->emptyList());
-        
+
         ++vPC;
         NEXT_OPCODE;
     }
@@ -957,7 +958,7 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
         */
         int dst = (++vPC)->u.operand;
         r[dst].u.jsValue = scopeChain->globalObject()->arrayConstructor()->construct(exec, exec->emptyList());
-        
+
         ++vPC;
         NEXT_OPCODE;
     }
@@ -1045,7 +1046,7 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
             dst = jsBoolean(reinterpret_cast<intptr_t>(src1) == reinterpret_cast<intptr_t>(src2));
         else
             dst = jsBoolean(strictEqual(src1, src2));
-        
+
         ++vPC;
         NEXT_OPCODE;
     }
@@ -1116,7 +1117,7 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
             result = jsNumber(v->toNumber(exec) + 1);
         VM_CHECK_EXCEPTION();
         r[srcDst].u.jsValue = result;
-        
+
         ++vPC;
         NEXT_OPCODE;
     }
@@ -1280,7 +1281,7 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
     BEGIN_OPCODE(op_mod) {
         /* mod dst(r) dividend(r) divisor(r)
 
-           Divides register dividend (converted to number) by 
+           Divides register dividend (converted to number) by
            register divisor (converted to number), and puts the
            remainder in register dst.
         */
@@ -1333,7 +1334,7 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
             VM_CHECK_EXCEPTION();
         }
         dst = result;
-        
+
         ++vPC;
         NEXT_OPCODE;
     }
@@ -1355,7 +1356,7 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
             VM_CHECK_EXCEPTION();
         }
         dst = result;
-        
+
         ++vPC;
         NEXT_OPCODE;
     }
@@ -1377,7 +1378,7 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
             VM_CHECK_EXCEPTION();
         }
         dst = result;
-        
+
         ++vPC;
         NEXT_OPCODE;
     }
@@ -1399,7 +1400,7 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
             VM_CHECK_EXCEPTION();
         }
         dst = result;
-        
+
         ++vPC;
         NEXT_OPCODE;
     }
@@ -1421,7 +1422,7 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
             VM_CHECK_EXCEPTION();
         }
         dst = result;
-        
+
         ++vPC;
         NEXT_OPCODE;
     }
@@ -1443,7 +1444,7 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
             VM_CHECK_EXCEPTION();
         }
         dst = result;
-        
+
         ++vPC;
         NEXT_OPCODE;
     }
@@ -1482,7 +1483,7 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
 
            Tests whether register value is an instance of register
            constructor, and puts the boolean result in register dst.
-          
+
            Raises an exception if register constructor is not an
            object.
         */
@@ -1519,7 +1520,7 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
 
            Tests whether register base has a property named register
            property, and puts the boolean result in register dst.
-          
+
            Raises an exception if register constructor is not an
            object.
         */
@@ -1562,28 +1563,28 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
     }
     BEGIN_OPCODE(op_resolve_skip) {
         /* resolve_skip dst(r) property(id) skip(n)
-         
+
          Looks up the property named by identifier property in the
          scope chain skipping the top 'skip' levels, and writes the resulting
          value to register dst. If the property is not found, raises an exception.
          */
         if (UNLIKELY(!resolve_skip(exec, vPC, r, scopeChain, codeBlock, exceptionValue)))
             goto vm_throw;
-        
+
         vPC += 4;
-        
+
         NEXT_OPCODE;
     }
     BEGIN_OPCODE(op_get_scoped_var) {
         /* get_scoped_var dst(r) index(n) skip(n)
-         
+
          Loads the contents of the index-th local from the scope skip nodes from
          the top of the scope chain, and places it in register dst
          */
         int dst = (++vPC)->u.operand;
         int index = (++vPC)->u.operand;
         int skip = (++vPC)->u.operand + codeBlock->needsFullScopeChain;
-        
+
         ScopeChainIterator iter = scopeChain->begin();
         ScopeChainIterator end = scopeChain->end();
         ASSERT(iter != end);
@@ -1591,7 +1592,7 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
             ++iter;
             ASSERT(iter != end);
         }
-        
+
         ASSERT((*iter)->isVariableObject());
         JSVariableObject* scope = static_cast<JSVariableObject*>(*iter);
         r[dst].u.jsValue = scope->valueAt(index);
@@ -1605,7 +1606,7 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
         int index = (++vPC)->u.operand;
         int skip = (++vPC)->u.operand + codeBlock->needsFullScopeChain;
         int value = (++vPC)->u.operand;
-        
+
         ScopeChainIterator iter = scopeChain->begin();
         ScopeChainIterator end = scopeChain->end();
         ASSERT(iter != end);
@@ -1613,7 +1614,7 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
             ++iter;
             ASSERT(iter != end);
         }
-        
+
         ASSERT((*iter)->isVariableObject());
         JSVariableObject* scope = static_cast<JSVariableObject*>(*iter);
         scope->valueAt(index) = r[value].u.jsValue;
@@ -1699,7 +1700,7 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
 
            Sets register value on register base as the property named
            by identifier property. Base is converted to object first.
+
            Unlike many opcodes, this one does not write any output to
            the register file.
         */
@@ -1709,11 +1710,11 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
 #ifndef NDEBUG
         int registerOffset = r - (*registerBase);
 #endif
-        
+
         Identifier& ident = codeBlock->identifiers[property];
         r[base].u.jsValue->put(exec, ident, r[value].u.jsValue);
         ASSERT(registerOffset == (r - (*registerBase)));
-        
+
         VM_CHECK_EXCEPTION();
         ++vPC;
         NEXT_OPCODE;
@@ -1731,7 +1732,7 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
         int property = (++vPC)->u.operand;
 
         JSObject* baseObj = r[base].u.jsValue->toObject(exec);
-        
+
         Identifier& ident = codeBlock->identifiers[property];
         JSValue* result = jsBoolean(baseObj->deleteProperty(exec, ident));
         VM_CHECK_EXCEPTION();
@@ -1752,7 +1753,7 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
         int property = (++vPC)->u.operand;
 
         JSValue* baseValue = r[base].u.jsValue;
-        
+
         JSValue* subscript = r[property].u.jsValue;
         JSValue* result;
         uint32_t i;
@@ -1771,7 +1772,7 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
             VM_CHECK_EXCEPTION(); // This check is needed to prevent us from incorrectly calling a getter after an exception is thrown
             result = baseObj->get(exec, property);
         }
-        
+
         VM_CHECK_EXCEPTION();
         r[dst].u.jsValue = result;
         ++vPC;
@@ -1784,7 +1785,7 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
            by register property. Base is converted to object
            first. register property is nominally converted to string
            but numbers are treated more efficiently.
+
            Unlike many opcodes, this one does not write any output to
            the register file.
         */
@@ -1793,7 +1794,7 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
         int value = (++vPC)->u.operand;
 
         JSValue* baseValue = r[base].u.jsValue;
-        
+
         JSValue* subscript = r[property].u.jsValue;
 
         uint32_t i;
@@ -1812,7 +1813,7 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
             VM_CHECK_EXCEPTION(); // This check is needed to prevent us from incorrectly calling a setter after an exception is thrown
             baseObj->put(exec, property, r[value].u.jsValue);
         }
-        
+
         VM_CHECK_EXCEPTION();
         ++vPC;
         NEXT_OPCODE;
@@ -1842,7 +1843,7 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
             VM_CHECK_EXCEPTION();
             result = jsBoolean(baseObj->deleteProperty(exec, property));
         }
-        
+
         VM_CHECK_EXCEPTION();
         r[dst].u.jsValue = result;
         ++vPC;
@@ -1855,7 +1856,7 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
            by the immediate number property. Base is converted to
            object first. register property is nominally converted to
            string but numbers are treated more efficiently.
+
            Unlike many opcodes, this one does not write any output to
            the register file.
 
@@ -1872,7 +1873,7 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
     }
     BEGIN_OPCODE(op_jmp) {
         /* jmp target(offset)
-         
+
            Jumps unconditionally to offset target from the current
            instruction.
         */
@@ -1883,7 +1884,7 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
     }
     BEGIN_OPCODE(op_jtrue) {
         /* jtrue cond(r) target(offset)
-         
+
            Jumps to offset target from the current instruction, if and
            only if register cond converts to boolean as true.
         */
@@ -1899,7 +1900,7 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
     }
     BEGIN_OPCODE(op_jfalse) {
         /* jfalse cond(r) target(offset)
-         
+
            Jumps to offset target from the current instruction, if and
            only if register cond converts to boolean as false.
         */
@@ -1965,7 +1966,7 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
 
         JSValue* funcVal = r[func].u.jsValue;
         JSValue* baseVal = r[thisVal].u.jsValue;
-        
+
         if (baseVal == scopeChain->globalObject() && funcVal == scopeChain->globalObject()->evalFunction()) {
             int registerOffset = r - (*registerBase);
 
@@ -1982,11 +1983,11 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
                 goto vm_throw;
 
             r[dst].u.jsValue = result;
-            
+
             ++vPC;
             NEXT_OPCODE;
         }
-        
+
         // We didn't find the blessed version of eval, so reset vPC and process
         // this instruction as a normal function call, supplying the proper 'this'
         // value.
@@ -2043,12 +2044,12 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
         int thisVal = (++vPC)->u.operand;
         int firstArg = (++vPC)->u.operand;
         int argCount = (++vPC)->u.operand;
-        
+
         JSValue* v = r[func].u.jsValue;
-        
+
         CallData callData;
         CallType callType = v->getCallData(callData);
-        
+
         if (callType == CallTypeJS) {
             if (*enabledProfilerReference)
                 (*enabledProfilerReference)->willExecute(exec, static_cast<JSObject*>(v));
@@ -2139,11 +2140,11 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
             JSValue* thisObject = callFrame[CallFrameHeaderSize].u.jsValue;
             returnValue = thisObject;
         }
-         
+
         codeBlock = callFrame[CallerCodeBlock].u.codeBlock;
         if (!codeBlock)
             return returnValue;
-        
+
         k = codeBlock->jsValues.data();
         vPC = callFrame[ReturnVPC].u.vPC;
         setScopeChain(exec, scopeChain, callFrame[CallerScopeChain].u.scopeChain);
@@ -2253,7 +2254,7 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
         JSValue* v = r[scope].u.jsValue;
         JSObject* o = v->toObject(exec);
         VM_CHECK_EXCEPTION();
-        
+
         setScopeChain(exec, scopeChain, scopeChain->push(o));
 
         ++vPC;
@@ -2317,12 +2318,12 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
         */
         int count = (++vPC)->u.operand;
         int target = (++vPC)->u.operand;
-        
+
         ScopeChainNode* tmp = scopeChain;
         while (count--)
             tmp = tmp->pop();
         setScopeChain(exec, scopeChain, tmp);
-            
+
         vPC += target;
         NEXT_OPCODE;
     }
@@ -2384,9 +2385,9 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
         int dst = (++vPC)->u.operand;
         int type = (++vPC)->u.operand;
         int message = (++vPC)->u.operand;
-        
+
         r[dst].u.jsValue = Error::create(exec, (ErrorType)type, k[message]->toString(exec), codeBlock->lineNumberForVPC(vPC), codeBlock->ownerNode->sourceId(), codeBlock->ownerNode->sourceURL());
-        
+
         ++vPC;
         NEXT_OPCODE;
     }
@@ -2406,19 +2407,19 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
     }
     BEGIN_OPCODE(op_put_getter) {
         /* put_getter base(r) property(id) function(r)
-         
+
            Sets register function on register base as the getter named
            by identifier property. Base and function are assumed to be
            objects as this op should only be used for getters defined
            in object literal form.
-         
+
            Unlike many opcodes, this one does not write any output to
            the register file.
         */
         int base = (++vPC)->u.operand;
         int property = (++vPC)->u.operand;
         int function = (++vPC)->u.operand;
-        
+
         ASSERT(r[base].u.jsValue->isObject());
         JSObject* baseObj = static_cast<JSObject*>(r[base].u.jsValue);
         Identifier& ident = codeBlock->identifiers[property];
@@ -2430,31 +2431,31 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
     }
     BEGIN_OPCODE(op_put_setter) {
         /* put_setter base(r) property(id) function(r)
-         
+
            Sets register function on register base as the setter named
            by identifier property. Base and function are assumed to be
            objects as this op should only be used for setters defined
            in object literal form.
-         
+
            Unlike many opcodes, this one does not write any output to
            the register file.
         */
         int base = (++vPC)->u.operand;
         int property = (++vPC)->u.operand;
         int function = (++vPC)->u.operand;
-        
+
         ASSERT(r[base].u.jsValue->isObject());
         JSObject* baseObj = static_cast<JSObject*>(r[base].u.jsValue);
         Identifier& ident = codeBlock->identifiers[property];
         ASSERT(r[function].u.jsValue->isObject());
         baseObj->defineSetter(exec, ident, static_cast<JSObject* >(r[function].u.jsValue));
-        
+
         ++vPC;
         NEXT_OPCODE;
     }
     BEGIN_OPCODE(op_jsr) {
         /* jsr retAddrDst(r) target(offset)
-         
+
            Places the address of the next instruction into the retAddrDst
            register and jumps to offset target from the current instruction.
         */
@@ -2467,7 +2468,7 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
     }
     BEGIN_OPCODE(op_sret) {
         /* sret retAddrSrc(r)
-         
+
          Jumps to the address stored in the retAddrSrc register. This
          differs from op_jmp because the target address is stored in a
          register, not as an immediate.
@@ -2478,7 +2479,7 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
     }
     BEGIN_OPCODE(op_debug) {
         /* debug debugHookID(n) firstLine(n) lastLine(n)
-         
+
          Notifies the debugger of the current state of execution. This opcode
          is only generated while the debugger is attached.
         */
@@ -2501,7 +2502,7 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
         }
         vPC = handlerVPC;
         NEXT_OPCODE;
-    }          
+    }
     }
     #undef NEXT_OPCODE
     #undef BEGIN_OPCODE
index 61bfdf9afd195c8baaa05a5b307ac20df9072e44..8f78ea752a55e94d231653808be90c49e4657fd6 100644 (file)
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
+
 #ifndef Machine_h
 #define Machine_h
 
 #include "Opcode.h"
 #include "RegisterFileStack.h"
-#include <wtf/HashMap.h>
 #include <kjs/list.h>
+#include <wtf/HashMap.h>
 
 namespace KJS {
 
@@ -45,7 +45,7 @@ namespace KJS {
     class RegisterFile;
     class RegisterFileStack;
     class ScopeChainNode;
-    
+
     enum DebugHookID {
         WillExecuteProgram,
         DidExecuteProgram,
@@ -59,31 +59,35 @@ namespace KJS {
 
     class Machine {
     public:
-        enum { CallerCodeBlock = 0, 
-               ReturnVPC, 
-               CallerScopeChain, 
-               CallerRegisterOffset, 
-               ReturnValueRegister,
-               ArgumentStartRegister,
-               ArgumentCount,
-               CalledAsConstructor,
-               Callee,
-               OptionalCalleeActivation,
-               CallFrameHeaderSize};
-        
+        enum {
+            CallerCodeBlock = 0,
+            ReturnVPC,
+            CallerScopeChain,
+            CallerRegisterOffset,
+            ReturnValueRegister,
+            ArgumentStartRegister,
+            ArgumentCount,
+            CalledAsConstructor,
+            Callee,
+            OptionalCalleeActivation,
+            CallFrameHeaderSize
+        };
+
         enum { ProgramCodeThisRegister = -1 };
 
         Machine();
-        
-        Opcode getOpcode(OpcodeID id) {
+
+        Opcode getOpcode(OpcodeID id)
+        {
             #if HAVE(COMPUTED_GOTO)
-                return m_opcodeTable[id]; 
+                return m_opcodeTable[id];
             #else
                 return id;
             #endif
         }
 
-        OpcodeID getOpcodeID(Opcode opcode) {
+        OpcodeID getOpcodeID(Opcode opcode)
+        {
             #if HAVE(COMPUTED_GOTO)
                 ASSERT(isOpcode(opcode));
                 return m_opcodeIDTable.get(opcode);
@@ -93,42 +97,42 @@ namespace KJS {
         }
 
         bool isOpcode(Opcode opcode);
-        
+
         JSValue* execute(ProgramNode*, ExecState*, ScopeChainNode*, JSObject* thisObj, RegisterFileStack*, JSValue** exception);
         JSValue* execute(FunctionBodyNode*, ExecState*, FunctionImp*, JSObject* thisObj, const List& args, RegisterFileStack*, ScopeChainNode*, JSValue** exception);
         JSValue* execute(EvalNode*, ExecState*, JSObject* thisObj, RegisterFile*, int registerOffset, ScopeChainNode*, JSValue** exception);
         JSValue* execute(EvalNode*, ExecState*, JSObject* thisObj, RegisterFileStack*, ScopeChainNode*, JSValue** exception);
-        
+
         JSValue* retrieveArguments(ExecState*, FunctionImp*) const;
         JSValue* retrieveCaller(ExecState*, FunctionImp*) const;
-        
+
         void getFunctionAndArguments(Register** registerBase, Register* callFrame, FunctionImp*&, Register*& argv, int& argc);
-        
+
     private:
-        typedef enum { Normal, InitializeAndReturn } ExecutionFlag;
+        enum ExecutionFlag { Normal, InitializeAndReturn };
 
         ALWAYS_INLINE void setScopeChain(ExecState* exec, ScopeChainNode*&, ScopeChainNode*);
         NEVER_INLINE void debug(ExecState*, const Instruction*, const CodeBlock*, ScopeChainNode*, Register**, Register*);
 
         NEVER_INLINE bool unwindCallFrame(ExecState*, JSValue*, Register**, const Instruction*&, CodeBlock*&, JSValue**&, ScopeChainNode*&, Register*&);
         NEVER_INLINE Instruction* throwException(ExecState*, JSValue*, Register**, const Instruction*, CodeBlock*&, JSValue**&, ScopeChainNode*&, Register*&);
-        
+
         bool getCallFrame(ExecState*, FunctionImp*, Register**& registerBase, int& callFrameOffset) const;
 
         JSValue* privateExecute(ExecutionFlag, ExecState* = 0, RegisterFile* = 0, Register* = 0, ScopeChainNode* = 0, CodeBlock* = 0, JSValue** exception = 0);
 
         void dumpCallFrame(const CodeBlock*, ScopeChainNode*, RegisterFile*, const Register*);
         void dumpRegisters(const CodeBlock*, RegisterFile*, const Register*);
-        
+
         bool isGlobalCallFrame(Register** registerBase, const Register* r) const { return (*registerBase) == r; }
 
         int m_reentryDepth;
-#if HAVE(COMPUTED_GOTO)        
+#if HAVE(COMPUTED_GOTO)
         Opcode m_opcodeTable[numOpcodeIDs]; // Maps OpcodeID => Opcode for compiling
         HashMap<Opcode, OpcodeID> m_opcodeIDTable; // Maps Opcode => OpcodeID for decompiling
 #endif
     };
-    
+
     Machine& machine();
 
 } // namespace KJS
index cf9d4b131441ca05392aad6c12da088dc68e4fb3..bebebf182a5c4e0619647110e4e94827a1fd32fa 100644 (file)
@@ -121,7 +121,7 @@ namespace KJS {
         macro(op_debug) \
         \
         macro(op_end) // end must be the last opcode in the list
-        
+
     #define OPCODE_ID_ENUM(opcode) opcode,
         typedef enum { FOR_EACH_OPCODE_ID(OPCODE_ID_ENUM) } OpcodeID;
     #undef OPCODE_ID_ENUM
index 2e905f4de384601a90ffaaed9b66d9018c2d0a8b..47688881fa531c78c3f4d83ba57663cf1a3444ea 100644 (file)
@@ -25,7 +25,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
+
 #ifndef Register_h
 #define Register_h
 
@@ -35,12 +35,12 @@ namespace KJS {
 
     class CodeBlock;
     class FunctionImp;
-    struct Instruction;
     class JSObject;
     class JSPropertyNameIterator;
     class JSValue;
     class ScopeChainNode;
-    
+    struct Instruction;
+
     struct Register {
         union {
             CodeBlock* codeBlock;
@@ -53,7 +53,7 @@ namespace KJS {
             int i;
         } u;
     };
-    
+
 } // namespace KJS
 
 namespace WTF {
index 4a27b4d05874be673a76fd0e439683e95c8a30b9..cb66f919954f33a71d8c1f484429c0a5e30ca091 100644 (file)
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
+
 #include "config.h"
 #include "RegisterFile.h"
-#include "RegisterFileStack.h"
 
+#include "RegisterFileStack.h"
 #include "Register.h"
 
-namespace KJS {
-
 using namespace std;
 
+namespace KJS {
+
 size_t RegisterFile::newBuffer(size_t size, size_t capacity, size_t minCapacity, size_t maxSize, size_t offset)
 {
     capacity = (max(minCapacity, min(maxSize, max<size_t>(16, capacity + capacity / 4 + 1))));
@@ -57,7 +57,7 @@ bool RegisterFile::growBuffer(size_t minCapacity, size_t maxSize)
     size_t size = m_size + numGlobalSlots;
     size_t capacity = m_capacity + numGlobalSlots;
     minCapacity += numGlobalSlots;
-    
+
     capacity = newBuffer(size, capacity, minCapacity, maxSize, 0);
 
     setBase(m_buffer + numGlobalSlots);
@@ -74,7 +74,7 @@ void RegisterFile::addGlobalSlots(size_t count)
     size_t size = m_size + numGlobalSlots;
     size_t capacity = m_capacity + numGlobalSlots;
     size_t minCapacity = size + count;
-    
+
     if (minCapacity < capacity)
         memmove(m_buffer + count, m_buffer, size * sizeof(Register));
     else
index 044694f1b235de32a73ed6befa8ab16abaa5fbe2..9821c0723198942bec251eb1edd367fab9d66619 100644 (file)
@@ -25,7 +25,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
+
 #ifndef RegisterFile_h
 #define RegisterFile_h
 
@@ -39,7 +39,7 @@ namespace KJS {
     A register file is a stack of register frames. We represent a register
     frame by its offset from "base", the logical first entry in the register
     file. The bottom-most register frame's offset from base is 0.
-    
+
     In a program where function "a" calls function "b" (global code -> a -> b),
     the register file might look like this:
 
@@ -53,12 +53,12 @@ namespace KJS {
        ^              ^                   ^                                       ^
        |              |                   |                                       |
      buffer    base (frame 0)          frame 1                                 frame 2
-     
+
     Since all variables, including globals, are accessed by negative offsets
     from their register frame pointers, to keep old global offsets correct, new
     globals must appear at the beginning of the register file, shifting base
     to the right.
-    
+
     If we added one global variable to the register file depicted above, it
     would look like this:
 
@@ -69,24 +69,25 @@ namespace KJS {
     | -4 | -3 | -2 | -1 |  0 |  1 |<                                                                    > <-- index relative to base
     ------------------------------->                                                                    <
     |         <-globals | temps-> |
-       ^                   ^       
-       |                   |       
+       ^                   ^
+       |                   |
      buffer         base (frame 0)
 
     As you can see, global offsets relative to base have stayed constant,
     but base itself has moved. To keep up with possible changes to base,
     clients keep an indirect pointer, so their calculations update
     automatically when base changes.
-    
+
     For client simplicity, the RegisterFile measures size and capacity from
     "base", not "buffer".
 */
 
     class RegisterFileStack;
-    
+
     class RegisterFile : Noncopyable {
     public:
         enum { DefaultRegisterFileSize = 2 * 1024 * 1024 };
+
         RegisterFile(size_t maxSize, RegisterFileStack* m_baseObserver)
             : m_safeForReentry(true)
             , m_size(0)
@@ -97,15 +98,15 @@ namespace KJS {
             , m_baseObserver(m_baseObserver)
         {
         }
-        
+
         ~RegisterFile()
         {
             setBuffer(0);
         }
-        
+
         // Pointer to a value that holds the base of this register file.
         Register** basePointer() { return &m_base; }
-        
+
         void shrink(size_t size)
         {
             if (size < m_size)
@@ -127,7 +128,7 @@ namespace KJS {
 
         size_t size() { return m_size; }
         size_t maxSize() { return m_maxSize; }
-        
+
         void clear();
 
         void addGlobalSlots(size_t count);
@@ -144,6 +145,7 @@ namespace KJS {
 
         bool safeForReentry() { return m_safeForReentry; }
         void setSafeForReentry(bool safeForReentry) { m_safeForReentry = safeForReentry; }
+
     private:
         size_t newBuffer(size_t size, size_t capacity, size_t minCapacity, size_t maxSize, size_t offset);
         bool growBuffer(size_t minCapacity, size_t maxSize);
@@ -154,8 +156,9 @@ namespace KJS {
 
             m_buffer = buffer;
         }
-        
+
         void setBase(Register*);
+
         bool m_safeForReentry;
         size_t m_size;
         size_t m_capacity;
@@ -164,7 +167,7 @@ namespace KJS {
         Register* m_buffer;
         RegisterFileStack* m_baseObserver;
     };
-    
+
 } // namespace KJS
 
 #endif // RegisterFile_h
index e413cbe9a486b4451d176000581bb98b805426c2..6f420bdc53b272d6dbb2ff535ad0e1cf5c56ddfb 100644 (file)
@@ -25,7 +25,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
+
 #include "config.h"
 #include "RegisterFileStack.h"
 
@@ -69,7 +69,7 @@ void RegisterFileStack::popGlobalRegisterFile()
         return;
     }
 
-    // Slow case: This is a nested register file: pop this register file and 
+    // Slow case: This is a nested register file: pop this register file and
     // copy its globals to the previous register file.
     RegisterFile* tmp = m_stack.last();
     m_stack.removeLast();
index f3e77739d49022ece6bbe37c7f86bf4a84c4fa14..5e5298a08905c0f2b674daf65f25309e51c3f571 100644 (file)
@@ -25,7 +25,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
+
 #ifndef RegisterFileStack_h
 #define RegisterFileStack_h
 
@@ -43,20 +43,19 @@ namespace KJS {
         }
 
         ~RegisterFileStack();
-        
+
         RegisterFile* pushGlobalRegisterFile();
         void popGlobalRegisterFile();
         RegisterFile* pushFunctionRegisterFile();
         void popFunctionRegisterFile();
 
         RegisterFile* current() { return m_stack.last(); }
-        
+
         void mark()
         {
             Stack::iterator end = m_stack.end();
-            for (Stack::iterator it = m_stack.begin(); it != end; ++it) {
+            for (Stack::iterator it = m_stack.begin(); it != end; ++it)
                 (*it)->mark();
-            }
         }
 
         // Pointer to a value that holds the base of the top-most global register file.
@@ -68,8 +67,9 @@ namespace KJS {
             m_globalBase = *registerFile->basePointer();
         }
 
-        bool inImplicitCall() {
-            for (size_t i = 0; i < m_stack.size(); ++i) { 
+        bool inImplicitCall()
+        {
+            for (size_t i = 0; i < m_stack.size(); ++i) {
                 if (!m_stack[i]->safeForReentry())
                     return true;
             }
@@ -79,7 +79,8 @@ namespace KJS {
     private:
         typedef Vector<RegisterFile*, 4> Stack;
 
-        RegisterFile* lastGlobal() {
+        RegisterFile* lastGlobal()
+        {
             ASSERT(m_stack.size());
             for (size_t i = m_stack.size() - 1; i > 0; --i) {
                 if (m_stack[i]->isGlobal())
index 5393b1c5e902c56dde529a57e49d5c4bd36cf509..88cdff69cbec9e9311c7128ca95868efbe821407 100644 (file)
@@ -25,7 +25,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
+
 #ifndef RegisterID_h
 #define RegisterID_h
 
@@ -62,13 +62,13 @@ namespace KJS {
 #endif
             m_index = index;
         }
-        
+
         int index() const
         {
             ASSERT(m_didSetIndex);
             return m_index;
         }
-        
+
         bool isTemporary()
         {
             return m_index >= 0;
@@ -91,14 +91,14 @@ namespace KJS {
         }
 
     private:
-    
+
         int m_refCount;
         int m_index;
 #ifndef NDEBUG
         bool m_didSetIndex;
 #endif
     };
-    
+
 } // namespace KJS
 
 namespace WTF {
@@ -110,5 +110,5 @@ namespace WTF {
     };
 
 } // namespace WTF
-    
+
 #endif // RegisterID_h
index bdf7502f215b2e956b76b8fc2a5095d20dfff167..42a28803784af46aff554479cfe984c18ba8ee63 100644 (file)
 #include <wtf/Vector.h>
 
 namespace KJS {
-    
+
     template <typename T, size_t SegmentSize> class SegmentedVector {
     public:
-        SegmentedVector() 
+        SegmentedVector()
             : m_size(0)
         {
             m_segments.append(&m_inlineSegment);
@@ -47,7 +47,7 @@ namespace KJS {
                 delete m_segments[i];
         }
 
-        T& last() 
+        T& last()
         {
             ASSERT(m_size);
             return m_segments.last()->last();
@@ -60,7 +60,7 @@ namespace KJS {
             m_segments.last()->uncheckedAppend(value);
             m_size++;
         }
-        
+
         void removeLast()
         {
             ASSERT(m_size);
@@ -72,12 +72,12 @@ namespace KJS {
             }
         }
 
-        size_t size() const 
+        size_t size() const
         {
-            return m_size; 
+            return m_size;
         }
 
-        T& operator[](size_t index) 
+        T& operator[](size_t index)
         {
             ASSERT(index < m_size);
             if (index < SegmentSize)
@@ -132,7 +132,7 @@ namespace KJS {
             if (extra)
                 numSegments++;
             size_t oldSize = m_segments.size();
-            
+
             if (numSegments == oldSize) {
                 m_segments.last()->resize(extra);
                 m_size = size;
@@ -142,7 +142,7 @@ namespace KJS {
             m_segments.last()->resize(SegmentSize);
 
             m_segments.resize(numSegments);
-    
+
             ASSERT(oldSize < m_segments.size());
             for (size_t i = oldSize - 1; i < (numSegments - 1); i++) {
                 Segment* segment = new Segment;
index c701c2bfa14b06ad25b95ddbe06f9ec3b1ac81c7..73486f4ca9147351d326802ebc5eeca613cca616 100644 (file)
@@ -25,7 +25,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
+
 #ifndef CallData_h
 #define CallData_h
 
index 4c02c1676681efd7451f6a81b74fb9255ec7306f..ac7b9072e8256195d44541641cf2dc8c62e4f528 100644 (file)
 #include <wtf/UnusedParam.h>
 
 namespace KJS {
-    // JSValue methods
-    JSValue *JSNotAnObject::toPrimitive(ExecState* exec, JSType) const
-    {
-        UNUSED_PARAM(exec);
-        ASSERT(exec->hadException() && exec->exception() == m_exception);
-        return m_exception;
-    }
-    
-    bool JSNotAnObject::getPrimitiveNumber(ExecState* exec, double&, JSValue*&)
-    {
-        UNUSED_PARAM(exec);
-        ASSERT(exec->hadException() && exec->exception() == m_exception);
-        return false;
-    }
-    
-    bool JSNotAnObject::toBoolean(ExecState* exec) const
-    {
-        UNUSED_PARAM(exec);
-        ASSERT(exec->hadException() && exec->exception() == m_exception);
-        return false;
-    }
-    
-    double JSNotAnObject::toNumber(ExecState* exec) const
-    {
-        UNUSED_PARAM(exec);
-        ASSERT(exec->hadException() && exec->exception() == m_exception);
-        return NaN;
-    }
-
-    UString JSNotAnObject::toString(ExecState* exec) const
-    {
-        UNUSED_PARAM(exec);
-        ASSERT(exec->hadException() && exec->exception() == m_exception);
-        return "";
-    }
-    
-    JSObject *JSNotAnObject::toObject(ExecState* exec) const
-    {
-        UNUSED_PARAM(exec);
-        ASSERT(exec->hadException() && exec->exception() == m_exception);
-        return m_exception;
-    }
-    
-    // marking
-    void JSNotAnObject::mark()
-    {
-        JSCell::mark();
-        if (!m_exception->marked())
-            m_exception->mark();
-    }
-    
-    bool JSNotAnObject::getOwnPropertySlot(ExecState* exec, const Identifier&, PropertySlot&)
-    {
-        UNUSED_PARAM(exec);
-        ASSERT(exec->hadException() && exec->exception() == m_exception);
-        return false;
-    }
-    
-    bool JSNotAnObject::getOwnPropertySlot(ExecState* exec, unsigned, PropertySlot&)
-    {
-        UNUSED_PARAM(exec);
-        ASSERT(exec->hadException() && exec->exception() == m_exception);
-        return false;
-    }
-    
-    void JSNotAnObject::put(ExecState* exec, const Identifier& , JSValue*)
-    {
-        UNUSED_PARAM(exec);
-        ASSERT(exec->hadException() && exec->exception() == m_exception);
-    }
-    
-    void JSNotAnObject::put(ExecState* exec, unsigned, JSValue*)
-    {
-        UNUSED_PARAM(exec);
-        ASSERT(exec->hadException() && exec->exception() == m_exception);
-    }
-    
-    bool JSNotAnObject::deleteProperty(ExecState* exec, const Identifier &)
-    {
-        UNUSED_PARAM(exec);
-        ASSERT(exec->hadException() && exec->exception() == m_exception);
-        return false;
-    }
-    
-    bool JSNotAnObject::deleteProperty(ExecState* exec, unsigned)
-    {
-        UNUSED_PARAM(exec);
-        ASSERT(exec->hadException() && exec->exception() == m_exception);
-        return false;
-    }
-    
-    JSValue *JSNotAnObject::defaultValue(ExecState* exec, JSType) const
-    {
-        UNUSED_PARAM(exec);
-        ASSERT(exec->hadException() && exec->exception() == m_exception);
-        return m_exception;
-    }
-    
-    JSObject* JSNotAnObject::construct(ExecState* exec, const List&)
-    {
-        UNUSED_PARAM(exec);
-        ASSERT(exec->hadException() && exec->exception() == m_exception);
-        return m_exception;
-    }
-    
-    JSObject* JSNotAnObject::construct(ExecState* exec, const List&, const Identifier&, const UString&, int)
-    {
-        UNUSED_PARAM(exec);
-        ASSERT(exec->hadException() && exec->exception() == m_exception);
-        return m_exception;
-    }
-    
-    JSValue* JSNotAnObject::callAsFunction(ExecState* exec, JSObject *, const List &)
-    {
-        UNUSED_PARAM(exec);
-        ASSERT(exec->hadException() && exec->exception() == m_exception);
-        return m_exception;
-    }
-    
-    void JSNotAnObject::getPropertyNames(ExecState* exec, PropertyNameArray&)
-    {
-        UNUSED_PARAM(exec);
-        ASSERT(exec->hadException() && exec->exception() == m_exception);        
-    }
-    
+
+// JSValue methods
+JSValue* JSNotAnObject::toPrimitive(ExecState* exec, JSType) const
+{
+    UNUSED_PARAM(exec);
+    ASSERT(exec->hadException() && exec->exception() == m_exception);
+    return m_exception;
+}
+
+bool JSNotAnObject::getPrimitiveNumber(ExecState* exec, double&, JSValue*&)
+{
+    UNUSED_PARAM(exec);
+    ASSERT(exec->hadException() && exec->exception() == m_exception);
+    return false;
+}
+
+bool JSNotAnObject::toBoolean(ExecState* exec) const
+{
+    UNUSED_PARAM(exec);
+    ASSERT(exec->hadException() && exec->exception() == m_exception);
+    return false;
+}
+
+double JSNotAnObject::toNumber(ExecState* exec) const
+{
+    UNUSED_PARAM(exec);
+    ASSERT(exec->hadException() && exec->exception() == m_exception);
+    return NaN;
+}
+
+UString JSNotAnObject::toString(ExecState* exec) const
+{
+    UNUSED_PARAM(exec);
+    ASSERT(exec->hadException() && exec->exception() == m_exception);
+    return "";
+}
+
+JSObject* JSNotAnObject::toObject(ExecState* exec) const
+{
+    UNUSED_PARAM(exec);
+    ASSERT(exec->hadException() && exec->exception() == m_exception);
+    return m_exception;
+}
+
+// Marking
+void JSNotAnObject::mark()
+{
+    JSCell::mark();
+    if (!m_exception->marked())
+        m_exception->mark();
+}
+
+// JSObject methods
+bool JSNotAnObject::getOwnPropertySlot(ExecState* exec, const Identifier&, PropertySlot&)
+{
+    UNUSED_PARAM(exec);
+    ASSERT(exec->hadException() && exec->exception() == m_exception);
+    return false;
+}
+
+bool JSNotAnObject::getOwnPropertySlot(ExecState* exec, unsigned, PropertySlot&)
+{
+    UNUSED_PARAM(exec);
+    ASSERT(exec->hadException() && exec->exception() == m_exception);
+    return false;
+}
+
+void JSNotAnObject::put(ExecState* exec, const Identifier& , JSValue*)
+{
+    UNUSED_PARAM(exec);
+    ASSERT(exec->hadException() && exec->exception() == m_exception);
+}
+
+void JSNotAnObject::put(ExecState* exec, unsigned, JSValue*)
+{
+    UNUSED_PARAM(exec);
+    ASSERT(exec->hadException() && exec->exception() == m_exception);
+}
+
+bool JSNotAnObject::deleteProperty(ExecState* exec, const Identifier&)
+{
+    UNUSED_PARAM(exec);
+    ASSERT(exec->hadException() && exec->exception() == m_exception);
+    return false;
+}
+
+bool JSNotAnObject::deleteProperty(ExecState* exec, unsigned)
+{
+    UNUSED_PARAM(exec);
+    ASSERT(exec->hadException() && exec->exception() == m_exception);
+    return false;
+}
+
+JSValue* JSNotAnObject::defaultValue(ExecState* exec, JSType) const
+{
+    UNUSED_PARAM(exec);
+    ASSERT(exec->hadException() && exec->exception() == m_exception);
+    return m_exception;
 }
+
+JSObject* JSNotAnObject::construct(ExecState* exec, const List&)
+{
+    UNUSED_PARAM(exec);
+    ASSERT(exec->hadException() && exec->exception() == m_exception);
+    return m_exception;
+}
+
+JSObject* JSNotAnObject::construct(ExecState* exec, const List&, const Identifier&, const UString&, int)
+{
+    UNUSED_PARAM(exec);
+    ASSERT(exec->hadException() && exec->exception() == m_exception);
+    return m_exception;
+}
+
+JSValue* JSNotAnObject::callAsFunction(ExecState* exec, JSObject*, const List&)
+{
+    UNUSED_PARAM(exec);
+    ASSERT(exec->hadException() && exec->exception() == m_exception);
+    return m_exception;
+}
+
+void JSNotAnObject::getPropertyNames(ExecState* exec, PropertyNameArray&)
+{
+    UNUSED_PARAM(exec);
+    ASSERT(exec->hadException() && exec->exception() == m_exception);
+}
+
+} // namespace KJS
index c99fd4a08e4b20a5b476160daf1b0b263354da56..81c9e3524d02a2f0334339b443c9463d4d1a3e6f 100644 (file)
@@ -32,7 +32,7 @@
 #include "object.h"
 
 namespace KJS {
-    
+
     // This unholy class is used to allow us to avoid multiple exception checks
     // in certain SquirrelFish opcodes -- effectively it just silently consumes
     // any operations performed on the result of a failed toObject call.
@@ -44,37 +44,39 @@ namespace KJS {
         }
 
         // JSValue methods
-        virtual JSValue *toPrimitive(ExecState* exec, JSType preferredType = UnspecifiedType) const;
-        virtual bool getPrimitiveNumber(ExecState* exec, double& number, JSValue*& value);
-        virtual bool toBoolean(ExecState* exec) const;
-        virtual double toNumber(ExecState* exec) const;
-        virtual UString toString(ExecState* exec) const;
-        virtual JSObject *toObject(ExecState* exec) const;
-        
-        // marking
+        virtual JSValue* toPrimitive(ExecState*, JSType preferredType = UnspecifiedType) const;
+        virtual bool getPrimitiveNumber(ExecState*, double& number, JSValue*&);
+        virtual bool toBoolean(ExecState*) const;
+        virtual double toNumber(ExecState*) const;
+        virtual UString toString(ExecState*) const;
+        virtual JSObject* toObject(ExecState*) const;
+
+        // Marking
         virtual void mark();
 
-        virtual bool getOwnPropertySlot(ExecState* , const Identifier&, PropertySlot&);
-        virtual bool getOwnPropertySlot(ExecState* , unsigned index, PropertySlot&);
+        // JSObject methods
+        virtual bool getOwnPropertySlot(ExecState*, const Identifier& propertyName, PropertySlot&);
+        virtual bool getOwnPropertySlot(ExecState*, unsigned propertyName, PropertySlot&);
 
-        virtual void put(ExecState*, const Identifier& propertyName, JSValue* value);
-        virtual void put(ExecState*, unsigned propertyName, JSValue* value);
+        virtual void put(ExecState*, const Identifier& propertyName, JSValue*);
+        virtual void put(ExecState*, unsigned propertyName, JSValue*);
 
-        virtual bool deleteProperty(ExecState* exec, const Identifier &propertyName);
-        virtual bool deleteProperty(ExecState* exec, unsigned propertyName);
+        virtual bool deleteProperty(ExecState*, const Identifier& propertyName);
+        virtual bool deleteProperty(ExecState*, unsigned propertyName);
 
-        virtual JSValue *defaultValue(ExecState* exec, JSType hint) const;
+        virtual JSValue* defaultValue(ExecState*, JSType hint) const;
 
-        virtual JSObject* construct(ExecState* exec, const List& args);
-        virtual JSObject* construct(ExecState* exec, const List& args, const Identifier& functionName, const UString& sourceURL, int lineNumber);
-        
-        virtual JSValue *callAsFunction(ExecState* exec, JSObject *thisObj, const List &args);
+        virtual JSObject* construct(ExecState*, const List&);
+        virtual JSObject* construct(ExecState*, const List&, const Identifier& functionName, const UString& sourceURL, int lineNumber);
+
+        virtual JSValue* callAsFunction(ExecState*, JSObject* thisObj, const List&);
 
         virtual void getPropertyNames(ExecState*, PropertyNameArray&);
 
     private:
         JSObject* m_exception;
     };
-}
 
-#endif
+} // namespace KJS
+
+#endif // JSNotAnObject_h
index 778ec4a6d1942972cb9bed8e9db4598d43113742..6069a0ee8ca5bbfb6c14d3dd853668b054a458bd 100644 (file)
@@ -54,6 +54,7 @@ namespace KJS {
         virtual bool getPropertyAttributes(ExecState*, const Identifier& propertyName, unsigned& attributes) const;
 
         JSValue*& valueAt(int index) const { return registers()[index].u.jsValue; }
+
     protected:
         // Subclasses of JSVariableObject can subclass this struct to add data
         // without increasing their own size (since there's a hard limit on the
index 87a54bb29fc214db81b5daf5352446d8618840ea..3788bdd67dced9c5b0b923a5560a4e3ace3462a6 100644 (file)
  *
  */
 
-#ifndef KJS_LOCAL_STORAGE_H
-#define KJS_LOCAL_STORAGE_H
+#ifndef LocalStorageEntry_h
+#define LocalStorageEntry_h
 
 #include <wtf/Forward.h>
 #include <wtf/VectorTraits.h>
 
 namespace KJS {
+
     class JSValue;
 
     struct LocalStorageEntry {
@@ -47,10 +48,13 @@ namespace KJS {
     };
 
     typedef Vector<LocalStorageEntry, 32> LocalStorage;
-}
+
+} // namespace KJS
 
 namespace WTF {
+
     template<> struct VectorTraits<KJS::LocalStorageEntry> : VectorTraitsBase<true, KJS::LocalStorageEntry> { };
-}
 
-#endif // KJS_LOCAL_STORAGE_H
+} // namespace WTF
+
+#endif // LocalStorageEntry_h
index 0d7236d426adf8cc70d89ffc8be9d910c898f3cb..f743f53babb96d5ac0da8d1fc198d230d539e327 100644 (file)
@@ -19,8 +19,8 @@
  *
  */
 
-#ifndef KJS_PROPERTY_NAME_ARRAY_H
-#define KJS_PROPERTY_NAME_ARRAY_H
+#ifndef PropertyNameArray_h
+#define PropertyNameArray_h
 
 #include "identifier.h"
 #include <wtf/HashSet.h>
@@ -36,14 +36,17 @@ namespace KJS {
         void add(const Identifier& identifier) { add(identifier.ustring().rep()); }
         void add(UString::Rep*);
         void addKnownUnique(UString::Rep* identifier) { m_vector.append(identifier); }
+
         const_iterator begin() const { return m_vector.begin(); }
         const_iterator end() const { return m_vector.end(); }
+
         size_t size() const { return m_vector.size(); }
 
         Identifier& operator[](unsigned i) { return m_vector[i]; }
         const Identifier& operator[](unsigned i) const { return m_vector[i]; }
 
         Identifier* releaseIdentifiers() { return size() ? m_vector.releaseBuffer() : 0; }
+
     private:
         typedef HashSet<UString::Rep*, PtrHash<UString::Rep*> > IdentifierSet;
 
@@ -53,5 +56,4 @@ namespace KJS {
 
 } // namespace KJS
 
-
-#endif // KJS_PROPERTY_NAME_ARRAY_H
+#endif // PropertyNameArray_h
index 10d0362993e375e7e02b8cecb071559365077345..3e3b23f47d4c524125a72ee825ac2a459ea92bc8 100644 (file)
@@ -25,7 +25,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
+
 #ifndef SourceProvider_h
 #define SourceProvider_h
 
@@ -36,7 +36,7 @@ namespace KJS {
 
     class SourceProvider : public RefCounted<SourceProvider> {
     public:
-        virtual ~SourceProvider() {}
+        virtual ~SourceProvider() { }
         virtual UString getRange(int start, int end) const = 0;
         virtual const UChar* data() const = 0;
         virtual int length() const = 0;
@@ -51,10 +51,14 @@ namespace KJS {
         int length() const { return m_source.size(); }
 
     private:
-        UStringSourceProvider(const UString& source) : m_source(source) {}
+        UStringSourceProvider(const UString& source)
+            : m_source(source)
+        {
+        }
+
         UString m_source;
     };
 
-}
+} // namespace KJS
 
 #endif // SourceProvider_h
index 20c49fce478cdeaaa5d4e737a51eec06b7da60c6..ff0f9c3e75c28e2172af54960235f5812bb30b34 100644 (file)
@@ -25,7 +25,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
+
 #ifndef SourceRange_h
 #define SourceRange_h
 
@@ -36,15 +36,23 @@ namespace KJS {
 
     class SourceRange {
     public:
-        SourceRange(PassRefPtr<SourceProvider> provider, int start, int end) 
+        SourceRange(PassRefPtr<SourceProvider> provider, int start, int end)
             : m_sourceProvider(provider)
             , m_startChar(start)
             , m_endChar(end)
         {
         }
-        SourceRange() {}
 
-        UString toString() const { if (!m_sourceProvider) return UString(); return m_sourceProvider->getRange(m_startChar, m_endChar); }
+        SourceRange()
+        {
+        }
+
+        UString toString() const
+        {
+            if (!m_sourceProvider)
+                return UString();
+            return m_sourceProvider->getRange(m_startChar, m_endChar);
+        }
 
     private:
         RefPtr<SourceProvider> m_sourceProvider;
@@ -52,6 +60,6 @@ namespace KJS {
         int m_endChar;
     };
 
-}
+} // namespace KJS
 
 #endif // SourceRange_h
index 131b9f222142a4e9b751bc05aa03b9455b027bf6..a48d0b067205d51781e6eef8df66c77e649ade0d 100644 (file)
@@ -44,7 +44,7 @@ namespace KJS {
         JSObject* object;
         JSObject* globalThis;
         int refCount;
-        
+
         void deref() { if (--refCount == 0) release(); }
         void ref() { ++refCount; }
         void release();
@@ -118,7 +118,10 @@ namespace KJS {
 
     class ScopeChainIterator {
     public:
-        ScopeChainIterator(const ScopeChainNode* node) : m_node(node) {}
+        ScopeChainIterator(const ScopeChainNode* node)
+            : m_node(node)
+        {
+        }
 
         JSObject* const & operator*() const { return m_node->object; }
         JSObject* const * operator->() const { return &(operator*()); }
@@ -187,7 +190,7 @@ namespace KJS {
 #ifndef NDEBUG        
         void print() const { _node->print(); }
 #endif
-        
+
     private:
         ScopeChainNode* _node;
     };
index 550b0900e948ee985bb1110700dbfc0cc404b003..bd3fc8ea83e27980c17b83b217fe75c39a2d8f5c 100644 (file)
@@ -80,7 +80,7 @@ extern const double Inf = NaNInf.doubles.Inf_Double;
 static const double D16 = 65536.0;
 static const double D32 = 4294967296.0;
 
-void *JSCell::operator new(size_t size)
+voidJSCell::operator new(size_t size)
 {
     return Collector::allocate(size);
 }
@@ -101,7 +101,7 @@ bool JSCell::getTruncatedUInt32(uint32_t&) const
 }
 
 // ECMA 9.4
-double JSValue::toInteger(ExecState *exec) const
+double JSValue::toInteger(ExecStateexec) const
 {
     int32_t i;
     if (getTruncatedInt32(i))
@@ -110,7 +110,7 @@ double JSValue::toInteger(ExecState *exec) const
     return isnan(d) ? 0.0 : trunc(d);
 }
 
-double JSValue::toIntegerPreserveNaN(ExecState *exec) const
+double JSValue::toIntegerPreserveNaN(ExecStateexec) const
 {
     int32_t i;
     if (getTruncatedInt32(i))
@@ -171,40 +171,40 @@ float JSValue::toFloat(ExecState* exec) const
     return static_cast<float>(toNumber(exec));
 }
 
-bool JSCell::getNumber(double &numericValue) const
+bool JSCell::getNumber(doublenumericValue) const
 {
     if (!isNumber())
         return false;
-    numericValue = static_cast<const NumberImp *>(this)->value();
+    numericValue = static_cast<const NumberImp*>(this)->value();
     return true;
 }
 
 double JSCell::getNumber() const
 {
-    return isNumber() ? static_cast<const NumberImp *>(this)->value() : NaN;
+    return isNumber() ? static_cast<const NumberImp*>(this)->value() : NaN;
 }
 
-bool JSCell::getString(UString &stringValue) const
+bool JSCell::getString(UString&stringValue) const
 {
     if (!isString())
         return false;
-    stringValue = static_cast<const StringImp *>(this)->value();
+    stringValue = static_cast<const StringImp*>(this)->value();
     return true;
 }
 
 UString JSCell::getString() const
 {
-    return isString() ? static_cast<const StringImp *>(this)->value() : UString();
+    return isString() ? static_cast<const StringImp*>(this)->value() : UString();
 }
 
-JSObject *JSCell::getObject()
+JSObject*JSCell::getObject()
 {
-    return isObject() ? static_cast<JSObject *>(this) : 0;
+    return isObject() ? static_cast<JSObject*>(this) : 0;
 }
 
-const JSObject *JSCell::getObject() const
+const JSObjectJSCell::getObject() const
 {
-    return isObject() ? static_cast<const JSObject *>(this) : 0;
+    return isObject() ? static_cast<const JSObject*>(this) : 0;
 }
 
 CallType JSCell::getCallData(CallData&)
index d61cc17f91c1febafd73d250de6a47611ff4c7d1..67d27ec67057392840db10fc4df6cf85e09e473b 100644 (file)
@@ -52,7 +52,6 @@ struct Instruction;
 class JSValue : Noncopyable {
     friend class JSCell; // so it can derive from this class
     friend class Collector; // so it can call asCell()
-
 private:
     JSValue();
     virtual ~JSValue();
@@ -67,7 +66,7 @@ public:
     bool isNumber() const;
     bool isString() const;
     bool isObject() const;
-    bool isObject(const ClassInfo *) const;
+    bool isObject(const ClassInfo*) const;
 
     // Extracting the value.
     bool getBoolean(bool&) const;
@@ -77,8 +76,8 @@ public:
     double uncheckedGetNumber() const;
     bool getString(UString&) const;
     UString getString() const; // null string if not a string
-    JSObject *getObject(); // NULL if not an object
-    const JSObject *getObject() const; // NULL if not an object
+    JSObjectgetObject(); // NULL if not an object
+    const JSObjectgetObject() const; // NULL if not an object
 
     CallType getCallData(CallData&);
     ConstructType getConstructData(ConstructData&);
@@ -89,17 +88,17 @@ public:
     bool getTruncatedUInt32(uint32_t&) const;
     
     // Basic conversions.
-    JSValue* toPrimitive(ExecState* exec, JSType preferredType = UnspecifiedType) const;
-    bool getPrimitiveNumber(ExecState* exec, double& number, JSValue*& value);
+    JSValue* toPrimitive(ExecState*, JSType preferredType = UnspecifiedType) const;
+    bool getPrimitiveNumber(ExecState*, double& number, JSValue*&);
 
-    bool toBoolean(ExecState *exec) const;
+    bool toBoolean(ExecState*) const;
 
     // toNumber conversion is expected to be side effect free if an exception has
     // been set in the ExecState already.
-    double toNumber(ExecState *exec) const;
+    double toNumber(ExecState*) const;
     JSValue* toJSNumber(ExecState*) const; // Fast path for when you expect that the value is an immediate number.
-    UString toString(ExecState *exec) const;
-    JSObject* toObject(ExecState *exec) const;
+    UString toString(ExecState*) const;
+    JSObject* toObject(ExecState*) const;
 
     // Integer conversions.
     double toInteger(ExecState*) const;
@@ -137,8 +136,8 @@ private:
     uint32_t toUInt32SlowCase(ExecState*, bool& ok) const;
 
     // Implementation details.
-    JSCell *asCell();
-    const JSCell *asCell() const;
+    JSCellasCell();
+    const JSCellasCell() const;
 };
 
 class JSCell : public JSValue {
@@ -151,21 +150,22 @@ class JSCell : public JSValue {
 private:
     JSCell();
     virtual ~JSCell();
+
 public:
     // Querying the type.
     virtual JSType type() const = 0;
     bool isNumber() const;
     bool isString() const;
     bool isObject() const;
-    bool isObject(const ClassInfo *) const;
+    bool isObject(const ClassInfo*) const;
 
     // Extracting the value.
     bool getNumber(double&) const;
     double getNumber() const; // NaN if not a number
     bool getString(UString&) const;
     UString getString() const; // null string if not a string
-    JSObject *getObject(); // NULL if not an object
-    const JSObject *getObject() const; // NULL if not an object
+    JSObjectgetObject(); // NULL if not an object
+    const JSObjectgetObject() const; // NULL if not an object
     
     virtual CallType getCallData(CallData&);
     virtual ConstructType getConstructData(ConstructData&);
@@ -176,15 +176,15 @@ public:
     virtual bool getTruncatedUInt32(uint32_t&) const;
 
     // Basic conversions.
-    virtual JSValue *toPrimitive(ExecState *exec, JSType preferredType = UnspecifiedType) const = 0;
-    virtual bool getPrimitiveNumber(ExecState* exec, double& number, JSValue*& value) = 0;
-    virtual bool toBoolean(ExecState *exec) const = 0;
-    virtual double toNumber(ExecState *exec) const = 0;
-    virtual UString toString(ExecState *exec) const = 0;
-    virtual JSObject *toObject(ExecState *exec) const = 0;
+    virtual JSValue* toPrimitive(ExecState*, JSType preferredType = UnspecifiedType) const = 0;
+    virtual bool getPrimitiveNumber(ExecState*, double& number, JSValue*&) = 0;
+    virtual bool toBoolean(ExecState*) const = 0;
+    virtual double toNumber(ExecState*) const = 0;
+    virtual UString toString(ExecState*) const = 0;
+    virtual JSObject* toObject(ExecState*) const = 0;
 
     // Garbage collection.
-    void *operator new(size_t);
+    voidoperator new(size_t);
     virtual void mark();
     bool marked() const;
 
@@ -199,47 +199,49 @@ public:
 };
 
 class NumberImp : public JSCell {
-  friend JSValue* jsNumberCell(double);
-
+    friend JSValue* jsNumberCell(double);
 public:
-  double value() const { return val; }
+    double value() const { return val; }
 
-  virtual JSType type() const;
+    virtual JSType type() const;
 
-  virtual JSValue* toPrimitive(ExecState*, JSType preferred = UnspecifiedType) const;
-  virtual bool getPrimitiveNumber(ExecState*, double& number, JSValue*& value);
-  virtual bool toBoolean(ExecState* exec) const;
-  virtual double toNumber(ExecState* exec) const;
-  virtual UString toString(ExecState* exec) const;
-  virtual JSObject* toObject(ExecState* exec) const;
+    virtual JSValue* toPrimitive(ExecState*, JSType preferred = UnspecifiedType) const;
+    virtual bool getPrimitiveNumber(ExecState*, double& number, JSValue*& value);
+    virtual bool toBoolean(ExecState*) const;
+    virtual double toNumber(ExecState*) const;
+    virtual UString toString(ExecState*) const;
+    virtual JSObject* toObject(ExecState*) const;
     virtual JSObject* toThisObject(ExecState*) const;
 
-  void* operator new(size_t size)
-  {
+    void* operator new(size_t size)
+    {
 #ifdef JAVASCRIPTCORE_BUILDING_ALL_IN_ONE_FILE
-      return Collector::inlineAllocateNumber(size);
+        return Collector::inlineAllocateNumber(size);
 #else
-      return Collector::allocateNumber(size);
+        return Collector::allocateNumber(size);
 #endif
-  }
+    }
 
 private:
-  NumberImp(double v) : val(v) { }
+    NumberImp(double v)
+        : val(v)
+    {
+    }
 
-  virtual bool getUInt32(uint32_t&) const;
-  virtual bool getTruncatedInt32(int32_t&) const;
-  virtual bool getTruncatedUInt32(uint32_t&) const;
+    virtual bool getUInt32(uint32_t&) const;
+    virtual bool getTruncatedInt32(int32_t&) const;
+    virtual bool getTruncatedUInt32(uint32_t&) const;
 
-  double val;
+    double val;
 };
 
-JSCell *jsString(const UString&); // returns empty string if passed null string
-JSCell *jsString(const char* = ""); // returns empty string if passed 0
+JSCelljsString(const UString&); // returns empty string if passed null string
+JSCelljsString(const char* = ""); // returns empty string if passed 0
 
 // should be used for strings that are owned by an object that will
 // likely outlive the JSValue this makes, such as the parse tree or a
 // DOM object that contains a UString
-JSCell *jsOwnedString(const UString&); 
+JSCelljsOwnedString(const UString&); 
 
 extern const double NaN;
 extern const double Inf;
@@ -251,22 +253,22 @@ inline JSValue* jsNumberCell(double d)
     return new NumberImp(d);
 }
 
-ALWAYS_INLINE JSValue *jsUndefined()
+ALWAYS_INLINE JSValuejsUndefined()
 {
     return JSImmediate::undefinedImmediate();
 }
 
-inline JSValue *jsNull()
+inline JSValuejsNull()
 {
     return JSImmediate::nullImmediate();
 }
 
-inline JSValue *jsNaN()
+inline JSValuejsNaN()
 {
     return jsNumberCell(NaN);
 }
 
-inline JSValue *jsBoolean(bool b)
+inline JSValuejsBoolean(bool b)
 {
     return b ? JSImmediate::trueImmediate() : JSImmediate::falseImmediate();
 }
@@ -607,6 +609,6 @@ inline JSObject* JSValue::toThisObject(ExecState* exec) const
     return asCell()->toThisObject(exec);
 }
 
-} // namespace
+} // namespace KJS
 
 #endif // KJS_VALUE_H