Ignore:
Timestamp:
Jun 21, 2014, 4:27:22 PM (11 years ago)
Author:
[email protected]
Message:

Remove static tables for bindings that use eager reification
https://bugs.webkit.org/show_bug.cgi?id=134126

Reviewed by Oliver Hunt.

Source/JavaScriptCore:

  • runtime/JSObject.cpp:

(JSC::JSObject::putDirectCustomAccessor):

  • runtime/Structure.h:

(JSC::Structure::setHasCustomGetterSetterProperties):
Change setHasCustomGetterSetterProperties to behave like setHasGetterSetterProperties, and set
the m_hasReadOnlyOrGetterSetterPropertiesExcludingProto bit if the property is not proto.
Without this, JSObject::put() won't think there are any setters on the prototype chain of an
object that has no static lookup table and uses eagerly reified custom getter/setter properties.

Source/WebCore:
This shaves about 1MB off of WebCore's .o files.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):
(GenerateImplementation):
(GenerateConstructorHelperMethods):

  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
  • bindings/scripts/test/JS/JSTestActiveDOMObject.h:
  • bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
  • bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:
  • bindings/scripts/test/JS/JSTestEventConstructor.h:
  • bindings/scripts/test/JS/JSTestEventTarget.cpp:
  • bindings/scripts/test/JS/JSTestEventTarget.h:
  • bindings/scripts/test/JS/JSTestException.cpp:
  • bindings/scripts/test/JS/JSTestException.h:
  • bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
  • bindings/scripts/test/JS/JSTestGenerateIsReachable.h:
  • bindings/scripts/test/JS/JSTestInterface.cpp:
  • bindings/scripts/test/JS/JSTestInterface.h:
  • bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
  • bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
  • bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
  • bindings/scripts/test/JS/JSTestNamedConstructor.h:
  • bindings/scripts/test/JS/JSTestNode.cpp:
  • bindings/scripts/test/JS/JSTestNode.h:
  • bindings/scripts/test/JS/JSTestNondeterministic.cpp:
  • bindings/scripts/test/JS/JSTestNondeterministic.h:
  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/JS/JSTestObj.h:
  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
  • bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
  • bindings/scripts/test/JS/JSTestTypedefs.cpp:
  • bindings/scripts/test/JS/JSTestTypedefs.h:
  • bindings/scripts/test/JS/JSattribute.cpp:
  • bindings/scripts/test/JS/JSattribute.h:
  • bindings/scripts/test/JS/JSreadonly.cpp:
  • bindings/scripts/test/JS/JSreadonly.h:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/runtime/JSObject.cpp

    r169815 r170256  
    12431243    if (attributes & ReadOnly)
    12441244        structure->setContainsReadOnlyProperties();
    1245     structure->setHasCustomGetterSetterProperties();
     1245    structure->setHasCustomGetterSetterProperties(propertyName == vm.propertyNames->underscoreProto);
    12461246}
    12471247
Note: See TracChangeset for help on using the changeset viewer.