Ignore:
Timestamp:
Jan 6, 2006, 12:32:20 AM (19 years ago)
Author:
mjs
Message:

JavaScriptCore:

Reviewed by Eric.

  • kjs/function.cpp: (KJS::ActivationImp::getOwnPropertySlot): Implement directly, thus skipping getter/setter handling and proto handling, as well as inlining needed superclass stuff. (KJS::ActivationImp::put): Implement directly, skipping getter/setter, proto, and do canPut directly in PropertyMap::put since there's no static property table either.
  • kjs/function.h:
  • kjs/property_map.cpp: (KJS::PropertyMap::put): Allow optionally inlining canPut check.
  • kjs/property_map.h:

LayoutTests:

Reviewed by Eric.

  • fast/js/activation-proto-expected.txt: Added.
  • fast/js/activation-proto.html: Added.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/kjs/property_map.cpp

    r11773 r11903  
    289289#endif
    290290
    291 void PropertyMap::put(const Identifier &name, JSValue *value, int attributes)
     291void PropertyMap::put(const Identifier &name, JSValue *value, int attributes, bool roCheck)
    292292{
    293293    assert(!name.isNull());
     
    308308        UString::Rep *key = _singleEntry.key;
    309309        if (key) {
    310             if (rep == key) {
     310            if (rep == key && !(roCheck && (_singleEntry.attributes & ReadOnly))) {
    311311                _singleEntry.value = value;
    312312                return;
     
    339339    while (UString::Rep *key = entries[i].key) {
    340340        if (rep == key) {
     341            if (roCheck && (_table->entries[i].attributes & ReadOnly))
     342                return;
    341343            // Put a new value in an existing hash table entry.
    342344            entries[i].value = value;
Note: See TracChangeset for help on using the changeset viewer.