Changeset 95503 in webkit for trunk/Source/JavaScriptCore/runtime/JSObject.cpp
- Timestamp:
- Sep 19, 2011, 6:21:51 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/runtime/JSObject.cpp
r95439 r95503 137 137 unsigned attributes; 138 138 JSCell* specificValue; 139 if (( m_structure->get(globalData, propertyName, attributes, specificValue) != WTF::notFound) && attributes & ReadOnly) {139 if ((structure()->get(globalData, propertyName, attributes, specificValue) != WTF::notFound) && attributes & ReadOnly) { 140 140 if (slot.isStrictMode()) 141 141 throwError(exec, createTypeError(exec, StrictModeReadonlyPropertyWriteError)); … … 234 234 unsigned attributes; 235 235 JSCell* specificValue; 236 if ( m_structure->get(exec->globalData(), propertyName, attributes, specificValue) != WTF::notFound) {236 if (structure()->get(exec->globalData(), propertyName, attributes, specificValue) != WTF::notFound) { 237 237 if ((attributes & DontDelete)) 238 238 return false; … … 335 335 JSValue object = getDirect(exec->globalData(), propertyName); 336 336 if (object && object.isGetterSetter()) { 337 ASSERT( m_structure->hasGetterSetterProperties());337 ASSERT(structure()->hasGetterSetterProperties()); 338 338 asGetterSetter(object)->setGetter(exec->globalData(), getterFunction); 339 339 return; … … 349 349 // if we override an existing non-getter or non-setter. 350 350 if (slot.type() != PutPropertySlot::NewProperty) { 351 if (! m_structure->isDictionary())352 setStructure(exec->globalData(), Structure::getterSetterTransition(globalData, m_structure.get()));353 } 354 355 m_structure->setHasGetterSetterProperties(true);351 if (!structure()->isDictionary()) 352 setStructure(exec->globalData(), Structure::getterSetterTransition(globalData, structure())); 353 } 354 355 structure()->setHasGetterSetterProperties(true); 356 356 getterSetter->setGetter(globalData, getterFunction); 357 357 } … … 366 366 JSValue object = getDirect(exec->globalData(), propertyName); 367 367 if (object && object.isGetterSetter()) { 368 ASSERT( m_structure->hasGetterSetterProperties());368 ASSERT(structure()->hasGetterSetterProperties()); 369 369 asGetterSetter(object)->setSetter(exec->globalData(), setterFunction); 370 370 return; … … 379 379 // if we override an existing non-getter or non-setter. 380 380 if (slot.type() != PutPropertySlot::NewProperty) { 381 if (! m_structure->isDictionary())382 setStructure(exec->globalData(), Structure::getterSetterTransition(exec->globalData(), m_structure.get()));383 } 384 385 m_structure->setHasGetterSetterProperties(true);381 if (!structure()->isDictionary()) 382 setStructure(exec->globalData(), Structure::getterSetterTransition(exec->globalData(), structure())); 383 } 384 385 structure()->setHasGetterSetterProperties(true); 386 386 getterSetter->setSetter(exec->globalData(), setterFunction); 387 387 } … … 454 454 { 455 455 unsigned attributes; 456 if ( m_structure->get(exec->globalData(), propertyName, attributes, specificValue) != WTF::notFound)456 if (structure()->get(exec->globalData(), propertyName, attributes, specificValue) != WTF::notFound) 457 457 return true; 458 458 … … 487 487 void JSObject::getOwnPropertyNames(ExecState* exec, PropertyNameArray& propertyNames, EnumerationMode mode) 488 488 { 489 m_structure->getPropertyNames(exec->globalData(), propertyNames, mode);489 structure()->getPropertyNames(exec->globalData(), propertyNames, mode); 490 490 getClassPropertyNames(exec, classInfo(), propertyNames, mode); 491 491 } … … 537 537 return; 538 538 preventExtensions(globalData); 539 setStructure(globalData, Structure::sealTransition(globalData, m_structure.get()));539 setStructure(globalData, Structure::sealTransition(globalData, structure())); 540 540 } 541 541 … … 545 545 return; 546 546 preventExtensions(globalData); 547 setStructure(globalData, Structure::freezeTransition(globalData, m_structure.get()));547 setStructure(globalData, Structure::freezeTransition(globalData, structure())); 548 548 } 549 549 … … 551 551 { 552 552 if (isExtensible()) 553 setStructure(globalData, Structure::preventExtensionsTransition(globalData, m_structure.get()));553 setStructure(globalData, Structure::preventExtensionsTransition(globalData, structure())); 554 554 } 555 555 556 556 void JSObject::removeDirect(JSGlobalData& globalData, const Identifier& propertyName) 557 557 { 558 if ( m_structure->get(globalData, propertyName) == WTF::notFound)558 if (structure()->get(globalData, propertyName) == WTF::notFound) 559 559 return; 560 560 561 561 size_t offset; 562 if ( m_structure->isUncacheableDictionary()) {563 offset = m_structure->removePropertyWithoutTransition(globalData, propertyName);562 if (structure()->isUncacheableDictionary()) { 563 offset = structure()->removePropertyWithoutTransition(globalData, propertyName); 564 564 if (offset != WTF::notFound) 565 565 putUndefinedAtDirectOffset(offset); … … 567 567 } 568 568 569 setStructure(globalData, Structure::removePropertyTransition(globalData, m_structure.get(), propertyName, offset));569 setStructure(globalData, Structure::removePropertyTransition(globalData, structure(), propertyName, offset)); 570 570 if (offset != WTF::notFound) 571 571 putUndefinedAtDirectOffset(offset); … … 585 585 Structure* JSObject::createInheritorID(JSGlobalData& globalData) 586 586 { 587 m_inheritorID.set(globalData, this, createEmptyObjectStructure(globalData, m_structure->globalObject(), this));587 m_inheritorID.set(globalData, this, createEmptyObjectStructure(globalData, structure()->globalObject(), this)); 588 588 ASSERT(m_inheritorID->isEmpty()); 589 589 return m_inheritorID.get(); … … 594 594 ASSERT(newSize > oldSize); 595 595 596 // It's important that this function not rely on m_structure, since596 // It's important that this function not rely on structure(), since 597 597 // we might be in the middle of a transition. 598 598 PropertyStorage newPropertyStorage = 0; … … 615 615 unsigned attributes = 0; 616 616 JSCell* cell = 0; 617 size_t offset = m_structure->get(exec->globalData(), propertyName, attributes, cell);617 size_t offset = structure()->get(exec->globalData(), propertyName, attributes, cell); 618 618 if (offset == WTF::notFound) 619 619 return false;
Note:
See TracChangeset
for help on using the changeset viewer.