Changeset 284716 in webkit
- Timestamp:
- Oct 22, 2021, 2:56:00 PM (5 years ago)
- Location:
- trunk
- Files:
-
- 1 added
- 3 edited
-
JSTests/ChangeLog (modified) (1 diff)
-
JSTests/stress/gettypedarraylengthasint52-must-be-emitted-for-typedarray.js (added)
-
Source/JavaScriptCore/ChangeLog (modified) (1 diff)
-
Source/JavaScriptCore/dfg/DFGSSALoweringPhase.cpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/JSTests/ChangeLog
r284702 r284716 1 2021-10-22 Yusuke Suzuki <ysuzuki@apple.com> 2 3 [JSC] GetTypedArrayLengthAsInt52 must be inserted only when we ensure that input is TypedArray via array-mode-based filtering 4 https://bugs.webkit.org/show_bug.cgi?id=232168 5 rdar://84366658 6 7 Reviewed by Robin Morisset. 8 9 * stress/gettypedarraylengthasint52-must-be-emitted-for-typedarray.js: Added. 10 (foo): 11 1 12 2021-10-22 Asumu Takikawa <asumu@igalia.com> 2 13 -
trunk/Source/JavaScriptCore/ChangeLog
r284715 r284716 1 2021-10-22 Yusuke Suzuki <ysuzuki@apple.com> 2 3 [JSC] GetTypedArrayLengthAsInt52 must be inserted only when we ensure that input is TypedArray via array-mode-based filtering 4 https://bugs.webkit.org/show_bug.cgi?id=232168 5 rdar://84366658 6 7 Reviewed by Robin Morisset. 8 9 GetTypedArrayLengthAsInt52 works only when input is TypedArray, which should be validated via array-mode (and already inserted checks in fixup). 10 Accidentally we were inserting it without checking typed-array condition in SSA lowering phase. This patch adds a condition which ensures it 11 is TypedArray. 12 13 * dfg/DFGSSALoweringPhase.cpp: 14 (JSC::DFG::SSALoweringPhase::handleNode): 15 (JSC::DFG::SSALoweringPhase::lowerBoundsCheck): 16 1 17 2021-10-22 Mark Lam <mark.lam@apple.com> 2 18 -
trunk/Source/JavaScriptCore/dfg/DFGSSALoweringPhase.cpp
r284646 r284716 100 100 break; 101 101 102 if (m_node->arrayMode(). typedArrayType() != NotTypedArray&& m_node->arrayMode().isOutOfBounds()) {102 if (m_node->arrayMode().isSomeTypedArrayView() && m_node->arrayMode().isOutOfBounds()) { 103 103 #if USE(LARGE_TYPED_ARRAYS) 104 104 if (m_node->arrayMode().mayBeLargeTypedArray() || m_graph.hasExitSite(m_node->origin.semantic, Overflow)) { … … 150 150 Node* checkInBounds; 151 151 #if USE(LARGE_TYPED_ARRAYS) 152 if ((op == GetArrayLength) && (m_node->arrayMode().mayBeLargeTypedArray() || m_graph.hasExitSite(m_node->origin.semantic, Overflow))) {152 if ((op == GetArrayLength) && m_node->arrayMode().isSomeTypedArrayView() && (m_node->arrayMode().mayBeLargeTypedArray() || m_graph.hasExitSite(m_node->origin.semantic, Overflow))) { 153 153 Node* length = m_insertionSet.insertNode( 154 154 m_nodeIndex, SpecInt52Any, GetTypedArrayLengthAsInt52, m_node->origin,
Note:
See TracChangeset
for help on using the changeset viewer.