bool ConfigurationManager::configure(std::string name, double& variable, double defaultValue) {
     if(!hasDouble(name)) {
         setDouble(name, defaultValue);
         variable = defaultValue;
         return false;
     }
     variable = getDouble(name);
     return true;
 }
 double ConfigurationManager::getDouble(std::string name)
 {
     if (hasDouble(name)) {
         return doubleMap[name];
     } else {
         LOG("Settings Error", "Variable not found, use the \"hasDouble\" function first");
         return 0;
     }
 }
void JSImmutableButterfly::visitChildren(JSCell* cell, SlotVisitor& visitor)
{
    Base::visitChildren(cell, visitor);
    if (!hasContiguous(cell->indexingType())) {
        ASSERT(hasDouble(cell->indexingType()) || hasInt32(cell->indexingType()));
        return;
    }

    Butterfly* butterfly = jsCast<JSImmutableButterfly*>(cell)->toButterfly();
    visitor.appendValuesHidden(butterfly->contiguous().data(), butterfly->publicLength());
}