bool JSLexicalEnvironment::getOwnPropertySlot(JSObject* object, ExecState* exec, PropertyName propertyName, PropertySlot& slot) { JSLexicalEnvironment* thisObject = jsCast<JSLexicalEnvironment*>(object); if (thisObject->symbolTableGet(propertyName, slot)) return true; unsigned attributes; if (JSValue value = thisObject->getDirect(exec->vm(), propertyName, attributes)) { slot.setValue(thisObject, attributes, value); return true; } // We don't call through to JSObject because there's no way to give a // lexical environment object getter properties or a prototype. ASSERT(!thisObject->hasGetterSetterProperties()); ASSERT(thisObject->prototype().isNull()); return false; }