Changeset 154300 in webkit for trunk/Source/JavaScriptCore/runtime/Arguments.cpp
- Timestamp:
- Aug 19, 2013, 2:44:17 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/runtime/Arguments.cpp
r154253 r154300 153 153 } 154 154 155 bool Arguments::getOwnPropertyDescriptor(JSObject* object, ExecState* exec, PropertyName propertyName, PropertyDescriptor& descriptor) 156 { 157 Arguments* thisObject = jsCast<Arguments*>(object); 158 unsigned i = propertyName.asIndex(); 159 if (JSValue value = thisObject->tryGetArgument(i)) { 160 RELEASE_ASSERT(i < PropertyName::NotAnIndex); 161 descriptor.setDescriptor(value, None); 162 return true; 163 } 164 165 if (propertyName == exec->propertyNames().length && LIKELY(!thisObject->m_overrodeLength)) { 166 descriptor.setDescriptor(jsNumber(thisObject->m_numArguments), DontEnum); 167 return true; 168 } 169 170 if (propertyName == exec->propertyNames().callee && LIKELY(!thisObject->m_overrodeCallee)) { 171 if (!thisObject->m_isStrictMode) { 172 descriptor.setDescriptor(thisObject->m_callee.get(), DontEnum); 173 return true; 174 } 175 thisObject->createStrictModeCalleeIfNecessary(exec); 176 } 177 178 if (propertyName == exec->propertyNames().caller && thisObject->m_isStrictMode) 179 thisObject->createStrictModeCallerIfNecessary(exec); 180 181 return JSObject::getOwnPropertyDescriptor(thisObject, exec, propertyName, descriptor); 182 } 155 GET_OWN_PROPERTY_DESCRIPTOR_IMPL(Arguments) 183 156 184 157 void Arguments::getOwnPropertyNames(JSObject* object, ExecState* exec, PropertyNameArray& propertyNames, EnumerationMode mode)
Note:
See TracChangeset
for help on using the changeset viewer.