Changeset 216279 in webkit for trunk/Source/JavaScriptCore/jit
- Timestamp:
- May 5, 2017, 3:35:31 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/jit/JITOperations.cpp
r214979 r216279 585 585 uint32_t index = subscript.asUInt32(); 586 586 ASSERT(isIndex(index)); 587 if (baseObject->canSetIndexQuicklyForPutDirect(index)) { 588 baseObject->setIndexQuickly(callFrame->vm(), index, value); 589 return; 590 } 591 592 // FIXME: This will make us think that in-bounds typed array accesses are actually 593 // out-of-bounds. 594 // https://bugs.webkit.org/show_bug.cgi?id=149886 595 byValInfo->arrayProfile->setOutOfBounds(); 587 588 switch (baseObject->indexingType()) { 589 case ALL_INT32_INDEXING_TYPES: 590 case ALL_DOUBLE_INDEXING_TYPES: 591 case ALL_CONTIGUOUS_INDEXING_TYPES: 592 case ALL_ARRAY_STORAGE_INDEXING_TYPES: 593 if (index < baseObject->butterfly()->vectorLength()) 594 break; 595 FALLTHROUGH; 596 default: 597 byValInfo->arrayProfile->setOutOfBounds(); 598 break; 599 } 600 596 601 baseObject->putDirectIndex(callFrame, index, value, 0, isStrictMode ? PutDirectIndexShouldThrow : PutDirectIndexShouldNotThrow); 597 602 return; … … 733 738 // Attempt to optimize. 734 739 JITArrayMode arrayMode = jitArrayModeForStructure(structure); 735 if (jitArrayModePermitsPut (arrayMode) && arrayMode != byValInfo->arrayMode) {740 if (jitArrayModePermitsPutDirect(arrayMode) && arrayMode != byValInfo->arrayMode) { 736 741 CodeBlock* codeBlock = exec->codeBlock(); 737 742 ConcurrentJSLocker locker(codeBlock->m_lock);
Note:
See TracChangeset
for help on using the changeset viewer.