Apparently gcc was miscompiling the code with boolean
bitfields. Changing them to uint's makes all errors
go away.
Change-Id: I95e856e4b5ebca0d10fa250a8a4640697998ff38
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
int insideWith;
- bool hasDirectEval: 1;
- bool usesArgumentsObject : 1;
- bool isStrict: 1;
+ uint hasDirectEval: 1;
+ uint usesArgumentsObject : 1;
+ uint isStrict: 1;
+ uint unused : 29;
template <typename _Tp> _Tp *New() { return new (pool->allocate(sizeof(_Tp))) _Tp(); }
, hasDirectEval(false)
, usesArgumentsObject(false)
, isStrict(false)
+ , unused(0)
{ this->name = newString(name); }
~Function();
vmFunction->hasDirectEval = irFunction->hasDirectEval;
vmFunction->usesArgumentsObject = irFunction->usesArgumentsObject;
+ vmFunction->hasNestedFunctions = !irFunction->nestedFunctions.isEmpty();
vmFunction->isStrict = irFunction->isStrict;
foreach (const QString *formal, irFunction->formals)
foreach (IR::Function *function, irFunction->nestedFunctions)
createFunctionMapping(engine, function);
- vmFunction->hasNestedFunctions = !irFunction->nestedFunctions.isEmpty();
if (engine->debugger)
engine->debugger->mapFunction(vmFunction, irFunction);