[SCM] WebKit Debian packaging branch, webkit-1.2, updated. upstream/1.1.90-6072-g9a69373

oliver at apple.com oliver at apple.com
Wed Apr 7 23:36:11 UTC 2010


The following commit has been merged in the webkit-1.2 branch:
commit e6eee469438ebc741761191be9049eed2b127908
Author: oliver at apple.com <oliver at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Nov 13 00:28:29 2009 +0000

    Rollout r50896 until i can work out why it causes failures.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@50916 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/JavaScriptCore/ChangeLog b/JavaScriptCore/ChangeLog
index c973288..03efd6d 100644
--- a/JavaScriptCore/ChangeLog
+++ b/JavaScriptCore/ChangeLog
@@ -1,3 +1,14 @@
+2009-11-12  Oliver Hunt  <oliver at apple.com>
+
+        Rollout r50896 until i can work out why it causes failures.
+
+        * bytecompiler/BytecodeGenerator.cpp:
+        (JSC::BytecodeGenerator::emitReturn):
+        * interpreter/Interpreter.cpp:
+        (JSC::Interpreter::execute):
+        * parser/Nodes.cpp:
+        (JSC::EvalNode::emitBytecode):
+
 2009-11-12  Steve Falkenburg  <sfalken at apple.com>
 
         Reviewed by Stephanie Lewis.
diff --git a/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp b/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp
index 50007d3..04dae15 100644
--- a/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp
+++ b/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp
@@ -1510,13 +1510,11 @@ RegisterID* BytecodeGenerator::emitCallVarargs(RegisterID* dst, RegisterID* func
 
 RegisterID* BytecodeGenerator::emitReturn(RegisterID* src)
 {
-    if (codeType() == FunctionCode) {
-        if (m_codeBlock->needsFullScopeChain()) {
-            emitOpcode(op_tear_off_activation);
-            instructions().append(m_activationRegisterIndex);
-        } else if (m_codeBlock->usesArguments() && m_codeBlock->m_numParameters > 1)
-            emitOpcode(op_tear_off_arguments);
-    }
+    if (m_codeBlock->needsFullScopeChain()) {
+        emitOpcode(op_tear_off_activation);
+        instructions().append(m_activationRegisterIndex);
+    } else if (m_codeBlock->usesArguments() && m_codeBlock->m_numParameters > 1)
+        emitOpcode(op_tear_off_arguments);
 
     return emitUnaryNoDstOp(op_ret, src);
 }
diff --git a/JavaScriptCore/interpreter/Interpreter.cpp b/JavaScriptCore/interpreter/Interpreter.cpp
index 5adbc4e..8d32342 100644
--- a/JavaScriptCore/interpreter/Interpreter.cpp
+++ b/JavaScriptCore/interpreter/Interpreter.cpp
@@ -813,23 +813,17 @@ JSValue Interpreter::execute(EvalExecutable* eval, CallFrame* callFrame, JSObjec
     }
 
     Register* oldEnd = m_registerFile.end();
-    int argc = 1; // Implicit this argument
-    if (!m_registerFile.grow(m_registerFile.start() + globalRegisterOffset + argc)) {
+    Register* newEnd = m_registerFile.start() + globalRegisterOffset + codeBlock->m_numCalleeRegisters;
+    if (!m_registerFile.grow(newEnd)) {
         *exception = createStackOverflowError(callFrame);
         return jsNull();
     }
 
     CallFrame* newCallFrame = CallFrame::create(m_registerFile.start() + globalRegisterOffset);
-    newCallFrame->r(0) = JSValue(thisObj);
 
-    newCallFrame = slideRegisterWindowForCall(codeBlock, &m_registerFile, newCallFrame, argc + RegisterFile::CallFrameHeaderSize, argc);
-    if (UNLIKELY(!newCallFrame)) {
-        *exception = createStackOverflowError(callFrame);
-        m_registerFile.shrink(oldEnd);
-        return jsNull();
-    }
     // a 0 codeBlock indicates a built-in caller
-    newCallFrame->init(codeBlock, 0, scopeChain, callFrame->addHostCallFrameFlag(), 0, argc, 0);
+    newCallFrame->r(codeBlock->thisRegister()) = JSValue(thisObj);
+    newCallFrame->init(codeBlock, 0, scopeChain, callFrame->addHostCallFrameFlag(), 0, 0, 0);
 
     if (codeBlock->needsFullScopeChain())
         scopeChain->ref();
diff --git a/JavaScriptCore/parser/Nodes.cpp b/JavaScriptCore/parser/Nodes.cpp
index 2042451..45009dc 100644
--- a/JavaScriptCore/parser/Nodes.cpp
+++ b/JavaScriptCore/parser/Nodes.cpp
@@ -1977,7 +1977,7 @@ RegisterID* EvalNode::emitBytecode(BytecodeGenerator& generator, RegisterID*)
     emitStatementsBytecode(generator, dstRegister.get());
 
     generator.emitDebugHook(DidExecuteProgram, firstLine(), lastLine());
-    generator.emitReturn(dstRegister.get());
+    generator.emitEnd(dstRegister.get());
     return 0;
 }
 

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list