int main(int argc, char *argv[]) { int keepRunning = 1; int command; while (keepRunning == 1) { showRegisters(); command = inputCommand(); switch (command) { case 0: keepRunning--; break; case 1: assignment(); break; case 2: addRegisters(); break; case 3: subtractRegisters(); break; } } return 0; }
void JSGlobalObject::addStaticGlobals(GlobalPropertyInfo* globals, int count) { addRegisters(count); for (int i = 0; i < count; ++i) { GlobalPropertyInfo& global = globals[i]; ASSERT(global.attributes & DontDelete); int index = symbolTable()->size(); SymbolTableEntry newEntry(index, global.attributes); symbolTable()->add(global.identifier.impl(), newEntry); registerAt(index).set(vm(), this, global.value); } }
JSGlobalObject::NewGlobalVar JSGlobalObject::addGlobalVar(const Identifier& ident, ConstantMode constantMode) { ConcurrentJITLocker locker(symbolTable()->m_lock); int index = symbolTable()->size(locker); SymbolTableEntry newEntry(index, (constantMode == IsConstant) ? ReadOnly : 0); if (constantMode == IsVariable) newEntry.prepareToWatch(); SymbolTable::Map::AddResult result = symbolTable()->add(locker, ident.impl(), newEntry); if (result.isNewEntry) addRegisters(1); else index = result.iterator->value.getIndex(); NewGlobalVar var; var.registerNumber = index; var.set = result.iterator->value.watchpointSet(); return var; }