- variableObject->put(exec, ident, val, flags);
- }
+ if (++chain.begin() == chain.end()) {
+ int flags = Internal;
+ if (exec->context()->codeType() != EvalCode)
+ flags |= DontDelete;
+ if (varType == VarDeclNode::Constant)
+ flags |= ReadOnly;
+ variableObject->putDirect(ident, val, flags);
+ } else {
+ ASSERT(variableObject->getDirect(ident) || ident == exec->propertyNames().arguments);
+ variableObject->put(exec, ident, val, flags);
+ }
+ } else {
+ if (++chain.begin() == chain.end()) {
+ int flags = Internal;
+ if (exec->context()->codeType() != EvalCode)
+ flags |= DontDelete;
+ if (varType == VarDeclNode::Constant)
+ flags |= ReadOnly;
+ variableObject->putDirect(ident, jsUndefined(), flags);
+ } else {
+
+ }
+ }