diff options
Diffstat (limited to 'Source/JavaScriptCore/runtime/JSWithScope.h')
| -rw-r--r-- | Source/JavaScriptCore/runtime/JSWithScope.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/Source/JavaScriptCore/runtime/JSWithScope.h b/Source/JavaScriptCore/runtime/JSWithScope.h index 8e5d09fa1..9b7e1826d 100644 --- a/Source/JavaScriptCore/runtime/JSWithScope.h +++ b/Source/JavaScriptCore/runtime/JSWithScope.h @@ -34,6 +34,13 @@ class JSWithScope : public JSScope { public: typedef JSScope Base; + static JSWithScope* create(ExecState* exec, JSObject* object) + { + JSWithScope* withScope = new (NotNull, allocateCell<JSWithScope>(*exec->heap())) JSWithScope(exec, object); + withScope->finishCreation(exec->vm()); + return withScope; + } + static JSWithScope* create(ExecState* exec, JSObject* object, JSScope* next) { JSWithScope* withScope = new (NotNull, allocateCell<JSWithScope>(*exec->heap())) JSWithScope(exec, object, next); @@ -52,7 +59,20 @@ public: DECLARE_EXPORT_INFO; +protected: + static const unsigned StructureFlags = OverridesVisitChildren | Base::StructureFlags; + private: + JSWithScope(ExecState* exec, JSObject* object) + : Base( + exec->vm(), + exec->lexicalGlobalObject()->withScopeStructure(), + exec->scope() + ) + , m_object(exec->vm(), this, object) + { + } + JSWithScope(ExecState* exec, JSObject* object, JSScope* next) : Base( exec->vm(), |
