struct Object: Managed {
Object *prototype;
QScopedPointer<PropertyTable> members;
- bool extensible;
Object()
- : prototype(0)
- , extensible(true) {}
+ : prototype(0) {}
virtual ~Object();
ExecutionContext *scope;
String *name;
String **formalParameterList;
- unsigned int formalParameterCount;
String **varList;
+ unsigned int formalParameterCount;
unsigned int varCount;
- bool needsActivation;
- bool usesArgumentsObject;
- bool strictMode;
FunctionObject(ExecutionContext *scope)
: scope(scope)
, name(0)
, formalParameterList(0)
- , formalParameterCount(0)
, varList(0)
+ , formalParameterCount(0)
, varCount(0)
- , needsActivation(false)
- , usesArgumentsObject(false)
- , strictMode(false) {}
+ { needsActivation = false;
+ usesArgumentsObject = false;
+ strictMode = false; }
virtual QString className() { return QStringLiteral("Function"); }
virtual FunctionObject *asFunctionObject() { return this; }
void operator = (const Managed &other);
protected:
- Managed() : markBit(0), inUse(1), unused(0) { }
+ Managed() : markBit(0), inUse(1), extensible(true), unused(0) { }
virtual ~Managed();
public:
struct {
quintptr markBit : 1;
quintptr inUse : 1;
+ quintptr extensible : 1; // used by Object
+ quintptr needsActivation : 1; // used by FunctionObject
+ quintptr usesArgumentsObject : 1; // used by FunctionObject
+ quintptr strictMode : 1; // used by FunctionObject
#if CPU(X86_64)
- quintptr unused : 62;
+ quintptr unused : 58;
#elif CPU(X86)
- quintptr unused : 30;
+ quintptr unused : 26;
#else
#error "implement me"
#endif