ExecutionEngine::ExecutionEngine(EvalISelFactory *factory)
: memoryManager(new QQmlJS::VM::MemoryManager)
, executableAllocator(new QQmlJS::VM::ExecutableAllocator)
+ , bumperPointerAllocator(new WTF::BumpPointerAllocator)
, debugger(0)
, globalObject(0)
, globalCode(0)
ExecutionEngine::~ExecutionEngine()
{
+ delete bumperPointerAllocator;
delete regExpCache;
UnwindHelper::deregisterFunctions(functions);
qDeleteAll(functions);
#include "qv4property_p.h"
#include <setjmp.h>
-#include <wtf/BumpPointerAllocator.h>
+namespace WTF {
+class BumpPointerAllocator;
+}
QT_BEGIN_NAMESPACE
ExecutionContext *current;
GlobalContext *rootContext;
- WTF::BumpPointerAllocator bumperPointerAllocator; // Used by Yarr Regex engine.
+ WTF::BumpPointerAllocator *bumperPointerAllocator; // Used by Yarr Regex engine.
Identifiers *identifierCache;
if (error)
return;
m_subPatternCount = yarrPattern.m_numSubpatterns;
- m_byteCode = JSC::Yarr::byteCompile(yarrPattern, &engine->bumperPointerAllocator);
+ m_byteCode = JSC::Yarr::byteCompile(yarrPattern, engine->bumperPointerAllocator);
#if ENABLE(YARR_JIT)
if (!yarrPattern.m_containsBackreferences) {
JSC::JSGlobalData dummy(engine->executableAllocator);
#include "qv4managed_p.h"
#include "qv4property_p.h"
#include "qv4objectiterator_p.h"
-#include "qv4regexp_p.h"
#include <QtCore/QString>
#include <QtCore/QHash>
namespace QQmlJS {
namespace VM {
+struct RegExp;
+
struct RegExpObject: Object {
RegExp* value;
Property *lastIndexProperty(ExecutionContext *ctx);
#include <cmath>
#include <cassert>
-#include <wtf/MathExtras.h>
+//#include <wtf/MathExtras.h>
#ifdef DO_TRACE_INSTR
# define TRACE1(x) fprintf(stderr, " %s\n", __FUNCTION__);