Changeset 29425 in webkit for trunk/JavaScriptCore/kjs/function.h
- Timestamp:
- Jan 11, 2008, 6:08:50 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/kjs/function.h
r28907 r29425 37 37 class FunctionBodyNode; 38 38 class FunctionPrototype; 39 class JSGlobalObject; 39 40 40 41 class InternalFunctionImp : public JSObject { … … 138 139 }; 139 140 140 class ActivationImp : public JSVariableObject {141 private:142 using JSVariableObject::JSVariableObjectData;143 144 struct ActivationImpData : public JSVariableObjectData {145 ActivationImpData(ExecState* e)146 : JSVariableObjectData(&e->function()->body->symbolTable())147 , exec(e)148 , function(e->function()) // Store this pointer for marking, to keep our symbol table / scope alive after exec has gone out of scope.149 , argumentsObject(0)150 {151 }152 153 ExecState* exec;154 FunctionImp* function;155 Arguments* argumentsObject;156 };157 158 public:159 ActivationImp(ExecState* exec)160 : JSVariableObject(new ActivationImpData(exec))161 {162 }163 164 virtual ~ActivationImp()165 {166 delete d();167 }168 169 virtual bool getOwnPropertySlot(ExecState*, const Identifier&, PropertySlot&);170 virtual void put(ExecState*, const Identifier& propertyName, JSValue* value, int attr = None);171 virtual bool deleteProperty(ExecState*, const Identifier& propertyName);172 173 virtual const ClassInfo* classInfo() const { return &info; }174 static const ClassInfo info;175 176 virtual void mark();177 178 virtual bool isActivationObject() { return true; }179 180 private:181 static PropertySlot::GetValueFunc getArgumentsGetter();182 static JSValue* argumentsGetter(ExecState*, JSObject*, const Identifier&, const PropertySlot& slot);183 void createArgumentsObject(ExecState*);184 ActivationImpData* d() { return static_cast<ActivationImpData*>(JSVariableObject::d); }185 };186 187 141 class GlobalFuncImp : public InternalFunctionImp { 188 142 public:
Note:
See TracChangeset
for help on using the changeset viewer.