summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/webkit/JavaScriptCore/parser
diff options
context:
space:
mode:
authorKent Hansen <khansen@trolltech.com>2009-07-14 15:49:56 (GMT)
committerKent Hansen <khansen@trolltech.com>2009-07-14 15:49:56 (GMT)
commit8fd9cbc859346d758bb730e85c679635f00940df (patch)
treebc3b10d79a458933b1f481bd7e88d1a633e7bc1e /src/3rdparty/webkit/JavaScriptCore/parser
parent65b788014759fa06d65d1677b3dbd5cc4b596f6b (diff)
parent06af27069497a693f5b1a867b29d96297f68eb75 (diff)
downloadQt-8fd9cbc859346d758bb730e85c679635f00940df.zip
Qt-8fd9cbc859346d758bb730e85c679635f00940df.tar.gz
Qt-8fd9cbc859346d758bb730e85c679635f00940df.tar.bz2
Merge branch 'qtwebkit-4.6-staging' into qtscript-jsc-backend
Conflicts: src/3rdparty/webkit/JavaScriptCore/interpreter/Interpreter.cpp src/script/qscriptecmafunction.cpp src/script/qscriptecmaglobal.cpp src/script/qscriptengine.cpp src/script/qscriptengine_p.cpp src/script/qscriptenginefwd_p.h src/script/qscriptextqobject.cpp src/script/qscriptextqobject_p.h tests/auto/qscriptqobject/tst_qscriptqobject.cpp
Diffstat (limited to 'src/3rdparty/webkit/JavaScriptCore/parser')
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/parser/NodeConstructors.h5
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/parser/Nodes.cpp6
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/parser/Nodes.h2
3 files changed, 10 insertions, 3 deletions
diff --git a/src/3rdparty/webkit/JavaScriptCore/parser/NodeConstructors.h b/src/3rdparty/webkit/JavaScriptCore/parser/NodeConstructors.h
index d17da69..780a624 100644
--- a/src/3rdparty/webkit/JavaScriptCore/parser/NodeConstructors.h
+++ b/src/3rdparty/webkit/JavaScriptCore/parser/NodeConstructors.h
@@ -39,6 +39,11 @@ namespace JSC {
return fastMalloc(size);
}
+ inline void ParserArenaDeletable::operator delete(void* p)
+ {
+ fastFree(p);
+ }
+
inline ParserArenaRefCounted::ParserArenaRefCounted(JSGlobalData* globalData)
{
globalData->parser->arena().derefWithArena(adoptRef(this));
diff --git a/src/3rdparty/webkit/JavaScriptCore/parser/Nodes.cpp b/src/3rdparty/webkit/JavaScriptCore/parser/Nodes.cpp
index ba6e1e0..105ceaf 100644
--- a/src/3rdparty/webkit/JavaScriptCore/parser/Nodes.cpp
+++ b/src/3rdparty/webkit/JavaScriptCore/parser/Nodes.cpp
@@ -601,7 +601,7 @@ RegisterID* PostfixErrorNode::emitBytecode(BytecodeGenerator& generator, Registe
RegisterID* DeleteResolveNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst)
{
if (generator.registerFor(m_ident))
- return generator.emitUnexpectedLoad(generator.finalDestination(dst), false);
+ return generator.emitLoad(generator.finalDestination(dst), false);
generator.emitExpressionInfo(divot(), startOffset(), endOffset());
RegisterID* base = generator.emitResolveBase(generator.tempDestination(dst), m_ident);
@@ -636,7 +636,7 @@ RegisterID* DeleteValueNode::emitBytecode(BytecodeGenerator& generator, Register
generator.emitNode(generator.ignoredResult(), m_expr);
// delete on a non-location expression ignores the value and returns true
- return generator.emitUnexpectedLoad(generator.finalDestination(dst), true);
+ return generator.emitLoad(generator.finalDestination(dst), true);
}
// ------------------------------ VoidNode -------------------------------------
@@ -688,7 +688,7 @@ RegisterID* PrefixResolveNode::emitBytecode(BytecodeGenerator& generator, Regist
if (generator.isLocalConstant(m_ident)) {
if (dst == generator.ignoredResult())
return 0;
- RefPtr<RegisterID> r0 = generator.emitUnexpectedLoad(generator.finalDestination(dst), (m_operator == OpPlusPlus) ? 1.0 : -1.0);
+ RefPtr<RegisterID> r0 = generator.emitLoad(generator.finalDestination(dst), (m_operator == OpPlusPlus) ? 1.0 : -1.0);
return generator.emitBinaryOp(op_add, r0.get(), local, r0.get(), OperandTypes());
}
diff --git a/src/3rdparty/webkit/JavaScriptCore/parser/Nodes.h b/src/3rdparty/webkit/JavaScriptCore/parser/Nodes.h
index a9f88b7..34b4497 100644
--- a/src/3rdparty/webkit/JavaScriptCore/parser/Nodes.h
+++ b/src/3rdparty/webkit/JavaScriptCore/parser/Nodes.h
@@ -109,6 +109,8 @@ namespace JSC {
// Objects created with this version of new are not deleted when the arena is deleted.
// Other arrangements must be made.
void* operator new(size_t);
+
+ void operator delete(void*);
};
class ParserArenaRefCounted : public RefCounted<ParserArenaRefCounted> {