⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 154303 in webkit


Ignore:
Timestamp:
Aug 19, 2013, 3:36:46 PM (13 years ago)
Author:
msaboff@apple.com
Message:

​https://bugs.webkit.org/show_bug.cgi?id=119995
Start removing custom implementations of getOwnPropertyDescriptor

Patch by Gavin Barraclough <​barraclough@apple.com> on 2013-08-18
Reviewed by Oliver Hunt.

This can now typically implemented in terms of getOwnPropertySlot.
Add a macro to PropertyDescriptor to define an implementation of GOPD in terms of GOPS.
Switch over most classes in JSC & the WebCore bindings generator to use this.

  • API/JSCallbackObjectFunctions.h:
  • debugger/DebuggerActivation.cpp:
  • runtime/Arguments.cpp:
  • runtime/ArrayConstructor.cpp:
  • runtime/ArrayPrototype.cpp:
  • runtime/BooleanPrototype.cpp:
  • runtime/DateConstructor.cpp:
  • runtime/DatePrototype.cpp:
  • runtime/ErrorPrototype.cpp:
  • runtime/JSActivation.cpp:
  • runtime/JSArray.cpp:
  • runtime/JSArrayBuffer.cpp:
  • runtime/JSArrayBufferView.cpp:
  • runtime/JSCell.cpp:
  • runtime/JSDataView.cpp:
  • runtime/JSDataViewPrototype.cpp:
  • runtime/JSFunction.cpp:
  • runtime/JSGenericTypedArrayViewInlines.h:
  • runtime/JSNotAnObject.cpp:
  • runtime/JSONObject.cpp:
  • runtime/JSObject.cpp:
  • runtime/NamePrototype.cpp:
  • runtime/NumberConstructor.cpp:
  • runtime/NumberPrototype.cpp:
  • runtime/ObjectConstructor.cpp:
    • Implement getOwnPropertySlot in terms of GET_OWN_PROPERTY_DESCRIPTOR_IMPL.
  • runtime/PropertyDescriptor.h:
    • Added GET_OWN_PROPERTY_DESCRIPTOR_IMPL macro.
  • runtime/PropertySlot.h:

(JSC::PropertySlot::isValue):
(JSC::PropertySlot::isGetter):
(JSC::PropertySlot::isCustom):
(JSC::PropertySlot::isCacheableValue):
(JSC::PropertySlot::isCacheableGetter):
(JSC::PropertySlot::isCacheableCustom):
(JSC::PropertySlot::attributes):
(JSC::PropertySlot::getterSetter):

  • Add accessors necessary to convert PropertySlot to descriptor.
  • runtime/RegExpConstructor.cpp:
  • runtime/RegExpMatchesArray.cpp:
  • runtime/RegExpMatchesArray.h:
  • runtime/RegExpObject.cpp:
  • runtime/RegExpPrototype.cpp:
  • runtime/StringConstructor.cpp:
  • runtime/StringObject.cpp:
    • Implement getOwnPropertySlot in terms of GET_OWN_PROPERTY_DESCRIPTOR_IMPL.
Location:
trunk/Source/JavaScriptCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r154300 r154303  
    44        Start removing custom implementations of getOwnPropertyDescriptor
    55
    6         Reviewed by Sam Weinig.
     6        Reviewed by Oliver Hunt.
    77
    88        This can now typically implemented in terms of getOwnPropertySlot.
    … …  
    59592013-08-19  Michael Saboff  <msaboff@apple.com>
    6060
     61        https://bugs.webkit.org/show_bug.cgi?id=120015 DFG 32Bit: Crash loading "Classic" site @ translate.google.com
     62
     63        Reviewed by Sam Weinig.
     64
     65        * dfg/DFGSpeculativeJIT32_64.cpp:
     66        (JSC::DFG::SpeculativeJIT::fillSpeculateCell): Added checks for spillFormat being
     67        DataFormatInteger or DataFormatDouble similar to what is in the 64 bit code and in
     68        all versions of fillSpeculateBoolean().
     69
     702013-08-19  Michael Saboff  <msaboff@apple.com>
     71
    6172        https://bugs.webkit.org/show_bug.cgi?id=120020 Change Set 154207 causes wrong register to be used for 32 bit tests
    6273
    … …  
    6879        * assembler/MacroAssemblerX86Common.h:
    6980        (JSC::MacroAssemblerX86Common::branchTest32):
    70         * dfg/DFGSpeculativeJIT32_64.cpp:
    71         (JSC::DFG::SpeculativeJIT::fillSpeculateCell):
    7281
    73822013-08-16  Oliver Hunt  <oliver@apple.com>
  • trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp

    r154290 r154303  
    11081108    switch (info.registerFormat()) {
    11091109    case DataFormatNone: {
     1110        if (info.spillFormat() == DataFormatInteger || info.spillFormat() == DataFormatDouble) {
     1111            terminateSpeculativeExecution(Uncountable, JSValueRegs(), 0);
     1112            return allocate();
     1113        }
    11101114
    11111115        if (edge->hasConstant()) {
Note: See TracChangeset for help on using the changeset viewer.