Ignore:
Timestamp:
Dec 22, 2011, 4:27:39 PM (13 years ago)
Author:
[email protected]
Message:

DFG CFA sometimes generates an incorrect proof that a node is known to be a typed array
https://bugs.webkit.org/show_bug.cgi?id=75150
<rdar://problem/10621900>

Reviewed by Gavin Barraclough.

Source/JavaScriptCore:

  • dfg/DFGAbstractState.cpp:

(JSC::DFG::AbstractState::execute):

LayoutTests:

  • fast/js/dfg-float32array-expected.txt: Added.
  • fast/js/dfg-float32array.html: Added.
  • fast/js/dfg-int32array-expected.txt: Added.
  • fast/js/dfg-int32array.html: Added.
  • fast/js/script-tests/dfg-float32array.js: Added.

(getter1):
(setter1):
(getter2):
(setter2):
(getter3):
(setter3):
(getter4):
(setter4):
(getters.getter1.a):
(.a):
(setters.setter1.a):
(safeGetter):
(safeSetter):

  • fast/js/script-tests/dfg-int32array.js: Added.

(getter1):
(setter1):
(getter2):
(setter2):
(getter3):
(setter3):
(getter4):
(setter4):
(getters.getter1.a):
(.a):
(setters.setter1.a):
(safeGetter):
(safeSetter):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/dfg/DFGAbstractState.cpp

    r103255 r103594  
    221221        else if (isByteArrayPrediction(predictedType))
    222222            forNode(node.child1()).filter(PredictByteArray);
    223         else if (isInt8ArrayPrediction(predictedType))
    224             forNode(node.child1()).filter(PredictInt8Array);
    225         else if (isInt16ArrayPrediction(predictedType))
    226             forNode(node.child1()).filter(PredictInt16Array);
    227         else if (isInt32ArrayPrediction(predictedType))
    228             forNode(node.child1()).filter(PredictInt32Array);
    229         else if (isUint8ArrayPrediction(predictedType))
    230             forNode(node.child1()).filter(PredictUint8Array);
    231         else if (isUint16ArrayPrediction(predictedType))
    232             forNode(node.child1()).filter(PredictUint16Array);
    233         else if (isUint32ArrayPrediction(predictedType))
    234             forNode(node.child1()).filter(PredictUint32Array);
    235         else if (isFloat32ArrayPrediction(predictedType))
    236             forNode(node.child1()).filter(PredictFloat32Array);
    237         else if (isFloat64ArrayPrediction(predictedType))
    238             forNode(node.child1()).filter(PredictFloat64Array);
    239223        else if (isBooleanPrediction(predictedType))
    240224            forNode(node.child1()).filter(PredictBoolean);
Note: See TracChangeset for help on using the changeset viewer.