Changeset 140619 in webkit
- Timestamp:
- Jan 23, 2013 5:40:37 PM (11 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 38 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/API/JSContextRef.cpp
r139541 r140619 182 182 } 183 183 while (true) { 184 ASSERT(callFrame);184 RELEASE_ASSERT(callFrame); 185 185 int signedLineNumber; 186 186 intptr_t sourceID; -
trunk/Source/JavaScriptCore/ChangeLog
r140608 r140619 1 2013-01-23 Oliver Hunt <oliver@apple.com> 2 3 Harden JSC a bit with RELEASE_ASSERT 4 https://bugs.webkit.org/show_bug.cgi?id=107766 5 6 Reviewed by Mark Hahnenberg. 7 8 Went through and replaced a pile of ASSERTs that were covering 9 significantly important details (bounds checks, etc) where 10 having the checks did not impact release performance in any 11 measurable way. 12 13 * API/JSContextRef.cpp: 14 (JSContextCreateBacktrace): 15 * assembler/MacroAssembler.h: 16 (JSC::MacroAssembler::branchAdd32): 17 (JSC::MacroAssembler::branchMul32): 18 * bytecode/CodeBlock.cpp: 19 (JSC::CodeBlock::dumpBytecode): 20 (JSC::CodeBlock::handlerForBytecodeOffset): 21 (JSC::CodeBlock::lineNumberForBytecodeOffset): 22 (JSC::CodeBlock::bytecodeOffset): 23 * bytecode/CodeBlock.h: 24 (JSC::CodeBlock::bytecodeOffsetForCallAtIndex): 25 (JSC::CodeBlock::bytecodeOffset): 26 (JSC::CodeBlock::exceptionHandler): 27 (JSC::CodeBlock::codeOrigin): 28 (JSC::CodeBlock::immediateSwitchJumpTable): 29 (JSC::CodeBlock::characterSwitchJumpTable): 30 (JSC::CodeBlock::stringSwitchJumpTable): 31 (JSC::CodeBlock::setIdentifiers): 32 (JSC::baselineCodeBlockForInlineCallFrame): 33 (JSC::ExecState::uncheckedR): 34 * bytecode/CodeOrigin.cpp: 35 (JSC::CodeOrigin::inlineStack): 36 * bytecode/CodeOrigin.h: 37 (JSC::CodeOrigin::CodeOrigin): 38 * dfg/DFGCSEPhase.cpp: 39 * dfg/DFGOSRExit.cpp: 40 * dfg/DFGScratchRegisterAllocator.h: 41 (JSC::DFG::ScratchRegisterAllocator::preserveUsedRegistersToScratchBuffer): 42 (JSC::DFG::ScratchRegisterAllocator::restoreUsedRegistersFromScratchBuffer): 43 * dfg/DFGSpeculativeJIT.h: 44 (JSC::DFG::SpeculativeJIT::allocate): 45 (JSC::DFG::SpeculativeJIT::spill): 46 (JSC::DFG::SpeculativeJIT::integerResult): 47 * dfg/DFGSpeculativeJIT64.cpp: 48 (JSC::DFG::SpeculativeJIT::fillInteger): 49 (JSC::DFG::SpeculativeJIT::fillDouble): 50 (JSC::DFG::SpeculativeJIT::fillJSValue): 51 (JSC::DFG::SpeculativeJIT::nonSpeculativeCompareNull): 52 (JSC::DFG::SpeculativeJIT::emitCall): 53 (JSC::DFG::SpeculativeJIT::fillSpeculateIntInternal): 54 (JSC::DFG::SpeculativeJIT::fillSpeculateIntStrict): 55 (JSC::DFG::SpeculativeJIT::fillSpeculateDouble): 56 (JSC::DFG::SpeculativeJIT::fillSpeculateCell): 57 (JSC::DFG::SpeculativeJIT::fillSpeculateBoolean): 58 (JSC::DFG::SpeculativeJIT::compile): 59 * dfg/DFGValueSource.h: 60 (JSC::DFG::dataFormatToValueSourceKind): 61 (JSC::DFG::ValueSource::ValueSource): 62 * dfg/DFGVirtualRegisterAllocationPhase.cpp: 63 * heap/BlockAllocator.cpp: 64 (JSC::BlockAllocator::BlockAllocator): 65 (JSC::BlockAllocator::releaseFreeRegions): 66 (JSC::BlockAllocator::blockFreeingThreadMain): 67 * heap/Heap.cpp: 68 (JSC::Heap::lastChanceToFinalize): 69 (JSC::Heap::collect): 70 * interpreter/Interpreter.cpp: 71 (JSC::Interpreter::throwException): 72 (JSC::Interpreter::execute): 73 * jit/GCAwareJITStubRoutine.cpp: 74 (JSC::GCAwareJITStubRoutine::observeZeroRefCount): 75 * jit/JIT.cpp: 76 (JSC::JIT::privateCompileMainPass): 77 (JSC::JIT::privateCompileSlowCases): 78 * jit/JITExceptions.cpp: 79 (JSC::genericThrow): 80 * jit/JITInlines.h: 81 (JSC::JIT::emitLoad): 82 * jit/JITOpcodes.cpp: 83 (JSC::JIT::emit_op_end): 84 (JSC::JIT::emit_resolve_operations): 85 * jit/JITStubRoutine.cpp: 86 (JSC::JITStubRoutine::observeZeroRefCount): 87 * jit/JITStubs.cpp: 88 (JSC::returnToThrowTrampoline): 89 * runtime/Arguments.cpp: 90 (JSC::Arguments::getOwnPropertySlot): 91 (JSC::Arguments::getOwnPropertyDescriptor): 92 (JSC::Arguments::deleteProperty): 93 (JSC::Arguments::defineOwnProperty): 94 (JSC::Arguments::didTearOffActivation): 95 * runtime/ArrayPrototype.cpp: 96 (JSC::shift): 97 (JSC::unshift): 98 (JSC::arrayProtoFuncLastIndexOf): 99 * runtime/ButterflyInlines.h: 100 (JSC::Butterfly::growPropertyStorage): 101 * runtime/CodeCache.cpp: 102 (JSC::CodeCache::getFunctionExecutableFromGlobalCode): 103 * runtime/CodeCache.h: 104 (JSC::CacheMap::add): 105 * runtime/Completion.cpp: 106 (JSC::checkSyntax): 107 (JSC::evaluate): 108 * runtime/Executable.cpp: 109 (JSC::FunctionExecutable::FunctionExecutable): 110 (JSC::EvalExecutable::unlinkCalls): 111 (JSC::ProgramExecutable::compileOptimized): 112 (JSC::ProgramExecutable::unlinkCalls): 113 (JSC::ProgramExecutable::initializeGlobalProperties): 114 (JSC::FunctionExecutable::baselineCodeBlockFor): 115 (JSC::FunctionExecutable::compileOptimizedForCall): 116 (JSC::FunctionExecutable::compileOptimizedForConstruct): 117 (JSC::FunctionExecutable::compileForCallInternal): 118 (JSC::FunctionExecutable::compileForConstructInternal): 119 (JSC::FunctionExecutable::unlinkCalls): 120 (JSC::NativeExecutable::hashFor): 121 * runtime/Executable.h: 122 (JSC::EvalExecutable::compile): 123 (JSC::ProgramExecutable::compile): 124 (JSC::FunctionExecutable::compileForCall): 125 (JSC::FunctionExecutable::compileForConstruct): 126 * runtime/IndexingHeader.h: 127 (JSC::IndexingHeader::setVectorLength): 128 * runtime/JSArray.cpp: 129 (JSC::JSArray::pop): 130 (JSC::JSArray::shiftCountWithArrayStorage): 131 (JSC::JSArray::shiftCountWithAnyIndexingType): 132 (JSC::JSArray::unshiftCountWithArrayStorage): 133 * runtime/JSGlobalObjectFunctions.cpp: 134 (JSC::jsStrDecimalLiteral): 135 * runtime/JSObject.cpp: 136 (JSC::JSObject::copyButterfly): 137 (JSC::JSObject::defineOwnIndexedProperty): 138 (JSC::JSObject::putByIndexBeyondVectorLengthWithoutAttributes): 139 * runtime/JSString.cpp: 140 (JSC::JSRopeString::getIndexSlowCase): 141 * yarr/YarrInterpreter.cpp: 142 (JSC::Yarr::Interpreter::popParenthesesDisjunctionContext): 143 1 144 2013-01-23 Filip Pizlo <fpizlo@apple.com> 2 145 -
trunk/Source/JavaScriptCore/assembler/MacroAssembler.h
r140594 r140619 1352 1352 { 1353 1353 if (src == dest) 1354 RELEASE_ASSERT(scratchRegisterForBlinding());1354 ASSERT(scratchRegisterForBlinding()); 1355 1355 1356 1356 if (shouldBlind(imm)) { … … 1370 1370 { 1371 1371 if (src == dest) 1372 RELEASE_ASSERT(scratchRegisterForBlinding());1372 ASSERT(scratchRegisterForBlinding()); 1373 1373 1374 1374 if (shouldBlind(imm)) { -
trunk/Source/JavaScriptCore/bytecode/CodeBlock.cpp
r140594 r140619 1495 1495 #if ENABLE(LLINT_C_LOOP) 1496 1496 default: 1497 ASSERT(false); // We should never get here.1497 RELEASE_ASSERT_NOT_REACHED(); 1498 1498 #endif 1499 1499 } … … 2493 2493 HandlerInfo* CodeBlock::handlerForBytecodeOffset(unsigned bytecodeOffset) 2494 2494 { 2495 ASSERT(bytecodeOffset < instructions().size());2495 RELEASE_ASSERT(bytecodeOffset < instructions().size()); 2496 2496 2497 2497 if (!m_rareData) … … 2511 2511 int CodeBlock::lineNumberForBytecodeOffset(unsigned bytecodeOffset) 2512 2512 { 2513 ASSERT(bytecodeOffset < instructions().size());2513 RELEASE_ASSERT(bytecodeOffset < instructions().size()); 2514 2514 return m_ownerExecutable->lineNo() + m_unlinkedCode->lineNumberForBytecodeOffset(bytecodeOffset); 2515 2515 } … … 2731 2731 #endif 2732 2732 { 2733 ASSERT(exec->codeBlock());2734 ASSERT(exec->codeBlock() == this);2735 ASSERT(JITCode::isBaselineCode(getJITType()));2733 RELEASE_ASSERT(exec->codeBlock()); 2734 RELEASE_ASSERT(exec->codeBlock() == this); 2735 RELEASE_ASSERT(JITCode::isBaselineCode(getJITType())); 2736 2736 Instruction* instruction = exec->currentVPC(); 2737 ASSERT(instruction);2737 RELEASE_ASSERT(instruction); 2738 2738 2739 2739 instruction = adjustPCIfAtCallSite(instruction); … … 2754 2754 binarySearch<CallReturnOffsetToBytecodeOffset, unsigned>( 2755 2755 callIndices, callIndices.size(), callReturnOffset, getCallReturnOffset); 2756 ASSERT(result->callReturnOffset == callReturnOffset);2756 RELEASE_ASSERT(result->callReturnOffset == callReturnOffset); 2757 2757 return result->bytecodeOffset; 2758 2758 } -
trunk/Source/JavaScriptCore/bytecode/CodeBlock.h
r139136 r140619 279 279 if (!callIndices.size()) 280 280 return 1; 281 ASSERT(index < m_rareData->m_callReturnIndexVector.size());281 RELEASE_ASSERT(index < m_rareData->m_callReturnIndexVector.size()); 282 282 return m_rareData->m_callReturnIndexVector[index].bytecodeOffset; 283 283 } … … 458 458 unsigned bytecodeOffset(Instruction* returnAddress) 459 459 { 460 ASSERT(returnAddress >= instructions().begin() && returnAddress < instructions().end());460 RELEASE_ASSERT(returnAddress >= instructions().begin() && returnAddress < instructions().end()); 461 461 return static_cast<Instruction*>(returnAddress) - instructions().begin(); 462 462 } … … 815 815 816 816 } 817 HandlerInfo& exceptionHandler(int index) { ASSERT(m_rareData); return m_rareData->m_exceptionHandlers[index]; }817 HandlerInfo& exceptionHandler(int index) { RELEASE_ASSERT(m_rareData); return m_rareData->m_exceptionHandlers[index]; } 818 818 819 819 bool hasExpressionInfo() { return m_unlinkedCode->hasExpressionInfo(); } … … 850 850 CodeOrigin codeOrigin(unsigned index) 851 851 { 852 ASSERT(m_rareData);852 RELEASE_ASSERT(m_rareData); 853 853 return m_rareData->m_codeOrigins[index].codeOrigin; 854 854 } … … 941 941 size_t numberOfImmediateSwitchJumpTables() const { return m_rareData ? m_rareData->m_immediateSwitchJumpTables.size() : 0; } 942 942 SimpleJumpTable& addImmediateSwitchJumpTable() { createRareDataIfNecessary(); m_rareData->m_immediateSwitchJumpTables.append(SimpleJumpTable()); return m_rareData->m_immediateSwitchJumpTables.last(); } 943 SimpleJumpTable& immediateSwitchJumpTable(int tableIndex) { ASSERT(m_rareData); return m_rareData->m_immediateSwitchJumpTables[tableIndex]; }943 SimpleJumpTable& immediateSwitchJumpTable(int tableIndex) { RELEASE_ASSERT(m_rareData); return m_rareData->m_immediateSwitchJumpTables[tableIndex]; } 944 944 945 945 size_t numberOfCharacterSwitchJumpTables() const { return m_rareData ? m_rareData->m_characterSwitchJumpTables.size() : 0; } 946 946 SimpleJumpTable& addCharacterSwitchJumpTable() { createRareDataIfNecessary(); m_rareData->m_characterSwitchJumpTables.append(SimpleJumpTable()); return m_rareData->m_characterSwitchJumpTables.last(); } 947 SimpleJumpTable& characterSwitchJumpTable(int tableIndex) { ASSERT(m_rareData); return m_rareData->m_characterSwitchJumpTables[tableIndex]; }947 SimpleJumpTable& characterSwitchJumpTable(int tableIndex) { RELEASE_ASSERT(m_rareData); return m_rareData->m_characterSwitchJumpTables[tableIndex]; } 948 948 949 949 size_t numberOfStringSwitchJumpTables() const { return m_rareData ? m_rareData->m_stringSwitchJumpTables.size() : 0; } 950 950 StringJumpTable& addStringSwitchJumpTable() { createRareDataIfNecessary(); m_rareData->m_stringSwitchJumpTables.append(StringJumpTable()); return m_rareData->m_stringSwitchJumpTables.last(); } 951 StringJumpTable& stringSwitchJumpTable(int tableIndex) { ASSERT(m_rareData); return m_rareData->m_stringSwitchJumpTables[tableIndex]; }951 StringJumpTable& stringSwitchJumpTable(int tableIndex) { RELEASE_ASSERT(m_rareData); return m_rareData->m_stringSwitchJumpTables[tableIndex]; } 952 952 953 953 … … 1159 1159 void setIdentifiers(const Vector<Identifier>& identifiers) 1160 1160 { 1161 ASSERT(m_identifiers.isEmpty());1161 RELEASE_ASSERT(m_identifiers.isEmpty()); 1162 1162 m_identifiers.appendVector(identifiers); 1163 1163 } … … 1460 1460 inline CodeBlock* baselineCodeBlockForInlineCallFrame(InlineCallFrame* inlineCallFrame) 1461 1461 { 1462 ASSERT(inlineCallFrame);1462 RELEASE_ASSERT(inlineCallFrame); 1463 1463 ExecutableBase* executable = inlineCallFrame->executable.get(); 1464 ASSERT(executable->structure()->classInfo() == &FunctionExecutable::s_info);1464 RELEASE_ASSERT(executable->structure()->classInfo() == &FunctionExecutable::s_info); 1465 1465 return static_cast<FunctionExecutable*>(executable)->baselineCodeBlockFor(inlineCallFrame->isCall ? CodeForCall : CodeForConstruct); 1466 1466 } … … 1496 1496 inline Register& ExecState::uncheckedR(int index) 1497 1497 { 1498 ASSERT(index < FirstConstantRegisterIndex);1498 RELEASE_ASSERT(index < FirstConstantRegisterIndex); 1499 1499 return this[index]; 1500 1500 } -
trunk/Source/JavaScriptCore/bytecode/CodeOrigin.cpp
r139541 r140619 54 54 for (InlineCallFrame* current = inlineCallFrame; current; current = current->caller.inlineCallFrame) 55 55 result[index--] = current->caller; 56 ASSERT(!result[0].inlineCallFrame);56 RELEASE_ASSERT(!result[0].inlineCallFrame); 57 57 return result; 58 58 } -
trunk/Source/JavaScriptCore/bytecode/CodeOrigin.h
r139109 r140619 66 66 , inlineCallFrame(inlineCallFrame) 67 67 { 68 ASSERT(bytecodeIndex <= maximumBytecodeIndex);69 ASSERT(valueProfileOffset < (1u << 3));68 RELEASE_ASSERT(bytecodeIndex <= maximumBytecodeIndex); 69 RELEASE_ASSERT(valueProfileOffset < (1u << 3)); 70 70 } 71 71 -
trunk/Source/JavaScriptCore/dfg/DFGCSEPhase.cpp
r140594 r140619 31 31 #include "DFGGraph.h" 32 32 #include "DFGPhase.h" 33 #include "JSCellInlines.h" 33 34 #include <wtf/FastBitVector.h> 34 35 -
trunk/Source/JavaScriptCore/dfg/DFGOSRExit.cpp
r137976 r140619 31 31 #include "DFGAssemblyHelpers.h" 32 32 #include "DFGSpeculativeJIT.h" 33 #include "JSCellInlines.h" 33 34 34 35 namespace JSC { namespace DFG { -
trunk/Source/JavaScriptCore/dfg/DFGScratchRegisterAllocator.h
r131858 r140619 138 138 scratchGPR = GPRInfo::toRegister(i); 139 139 } 140 ASSERT(scratchGPR != InvalidGPRReg);140 RELEASE_ASSERT(scratchGPR != InvalidGPRReg); 141 141 for (unsigned i = FPRInfo::numberOfRegisters; i--;) { 142 142 if (m_usedRegisters.getFPRByIndex(i)) { … … 145 145 } 146 146 } 147 ASSERT(count * sizeof(JSValue) == desiredScratchBufferSize());147 RELEASE_ASSERT(count * sizeof(JSValue) == desiredScratchBufferSize()); 148 148 149 149 jit.move(MacroAssembler::TrustedImmPtr(&scratchBuffer->m_activeLength), scratchGPR); … … 162 162 } 163 163 } 164 ASSERT(scratchGPR != InvalidGPRReg);164 RELEASE_ASSERT(scratchGPR != InvalidGPRReg); 165 165 166 166 jit.move(MacroAssembler::TrustedImmPtr(&scratchBuffer->m_activeLength), scratchGPR); -
trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h
r140594 r140619 190 190 #if USE(JSVALUE32_64) 191 191 GenerationInfo& info = m_generationInfo[spillMe]; 192 ASSERT(info.registerFormat() != DataFormatJSDouble);192 RELEASE_ASSERT(info.registerFormat() != DataFormatJSDouble); 193 193 if ((info.registerFormat() & DataFormatJS)) 194 194 m_gprs.release(info.tagGPR() == gpr ? info.payloadGPR() : info.tagGPR()); … … 204 204 #if USE(JSVALUE32_64) 205 205 GenerationInfo& info = m_generationInfo[spillMe]; 206 ASSERT(info.registerFormat() != DataFormatJSDouble);206 RELEASE_ASSERT(info.registerFormat() != DataFormatJSDouble); 207 207 if ((info.registerFormat() & DataFormatJS)) 208 208 m_gprs.release(info.tagGPR() == specific ? info.payloadGPR() : info.tagGPR()); … … 498 498 default: 499 499 // The following code handles JSValues, int32s, and cells. 500 ASSERT(spillFormat == DataFormatCell || spillFormat & DataFormatJS);500 RELEASE_ASSERT(spillFormat == DataFormatCell || spillFormat & DataFormatJS); 501 501 502 502 GPRReg reg = info.gpr(); … … 528 528 default: 529 529 // The following code handles JSValues. 530 ASSERT(spillFormat & DataFormatJS);530 RELEASE_ASSERT(spillFormat & DataFormatJS); 531 531 m_jit.store32(info.tagGPR(), JITCompiler::tagFor(spillMe)); 532 532 m_jit.store32(info.payloadGPR(), JITCompiler::payloadFor(spillMe)); … … 800 800 } else { 801 801 #if USE(JSVALUE64) 802 ASSERT(format == DataFormatJSInteger);802 RELEASE_ASSERT(format == DataFormatJSInteger); 803 803 m_jit.jitAssertIsJSInt32(reg); 804 804 m_gprs.retain(reg, virtualRegister, SpillOrderJS); -
trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp
r140594 r140619 71 71 m_jit.or64(GPRInfo::tagTypeNumberRegister, gpr); 72 72 } else { 73 ASSERT(info.spillFormat() == DataFormatJS || info.spillFormat() == DataFormatJSInteger);73 RELEASE_ASSERT(info.spillFormat() == DataFormatJS || info.spillFormat() == DataFormatJSInteger); 74 74 m_gprs.retain(gpr, virtualRegister, SpillOrderSpilled); 75 75 m_jit.load64(JITCompiler::addressFor(virtualRegister), gpr); … … 177 177 GPRReg gpr = allocate(); 178 178 179 ASSERT(spillFormat & DataFormatJS);179 RELEASE_ASSERT(spillFormat & DataFormatJS); 180 180 m_gprs.retain(gpr, virtualRegister, SpillOrderSpilled); 181 181 m_jit.load64(JITCompiler::addressFor(virtualRegister), gpr); … … 310 310 spillFormat = DataFormatJSDouble; 311 311 } else 312 ASSERT(spillFormat & DataFormatJS);312 RELEASE_ASSERT(spillFormat & DataFormatJS); 313 313 } 314 314 info.fillJSValue(*m_stream, gpr, spillFormat); … … 693 693 NodeIndex branchNodeIndex = m_jit.graph().m_blocks[m_block]->at(branchIndexInBlock); 694 694 695 ASSERT(node.adjustedRefCount() == 1);695 RELEASE_ASSERT(node.adjustedRefCount() == 1); 696 696 697 697 nonSpeculativePeepholeBranchNull(operand, branchNodeIndex, invert); … … 993 993 { 994 994 if (node.op() != Call) 995 ASSERT(node.op() == Construct);995 RELEASE_ASSERT(node.op() == Construct); 996 996 997 997 // For constructors, the this argument is not passed but we have to make space … … 1095 1095 DataFormat spillFormat = info.spillFormat(); 1096 1096 1097 ASSERT((spillFormat & DataFormatJS) || spillFormat == DataFormatInteger);1097 RELEASE_ASSERT((spillFormat & DataFormatJS) || spillFormat == DataFormatInteger); 1098 1098 1099 1099 m_gprs.retain(gpr, virtualRegister, SpillOrderSpilled); … … 1208 1208 DataFormat mustBeDataFormatInteger; 1209 1209 GPRReg result = fillSpeculateIntInternal<true>(nodeIndex, mustBeDataFormatInteger, BackwardSpeculation); 1210 ASSERT(mustBeDataFormatInteger == DataFormatInteger);1210 RELEASE_ASSERT(mustBeDataFormatInteger == DataFormatInteger); 1211 1211 return result; 1212 1212 } … … 1273 1273 GPRReg gpr = allocate(); 1274 1274 1275 ASSERT(spillFormat & DataFormatJS);1275 RELEASE_ASSERT(spillFormat & DataFormatJS); 1276 1276 m_gprs.retain(gpr, virtualRegister, SpillOrderSpilled); 1277 1277 m_jit.load64(JITCompiler::addressFor(virtualRegister), gpr); … … 1396 1396 return gpr; 1397 1397 } 1398 ASSERT(info.spillFormat() & DataFormatJS);1398 RELEASE_ASSERT(info.spillFormat() & DataFormatJS); 1399 1399 m_gprs.retain(gpr, virtualRegister, SpillOrderSpilled); 1400 1400 m_jit.load64(JITCompiler::addressFor(virtualRegister), gpr); … … 1472 1472 return gpr; 1473 1473 } 1474 ASSERT(info.spillFormat() & DataFormatJS);1474 RELEASE_ASSERT(info.spillFormat() & DataFormatJS); 1475 1475 m_gprs.retain(gpr, virtualRegister, SpillOrderSpilled); 1476 1476 m_jit.load64(JITCompiler::addressFor(virtualRegister), gpr); … … 2806 2806 break; 2807 2807 case Array::Generic: { 2808 ASSERT(node.op() == PutByVal);2808 RELEASE_ASSERT(node.op() == PutByVal); 2809 2809 2810 2810 JSValueOperand arg1(this, child1); … … 3464 3464 3465 3465 Structure* structure = globalObject->arrayStructureForIndexingTypeDuringAllocation(node.indexingType()); 3466 ASSERT(structure->indexingType() == node.indexingType());3466 RELEASE_ASSERT(structure->indexingType() == node.indexingType()); 3467 3467 ASSERT( 3468 3468 hasUndecided(structure->indexingType()) … … 3770 3770 emitAllocateJSArray(globalObject->arrayStructureForIndexingTypeDuringAllocation(indexingType), resultGPR, storageGPR, numElements); 3771 3771 3772 ASSERT(indexingType & IsArray);3772 RELEASE_ASSERT(indexingType & IsArray); 3773 3773 JSValue* data = m_jit.codeBlock()->constantBuffer(node.startConstant()); 3774 3774 if (indexingType == ArrayWithDouble) { … … 4656 4656 4657 4657 case CreateActivation: { 4658 ASSERT(!node.codeOrigin.inlineCallFrame);4658 RELEASE_ASSERT(!node.codeOrigin.inlineCallFrame); 4659 4659 4660 4660 JSValueOperand value(this, node.child1()); … … 4701 4701 4702 4702 case TearOffActivation: { 4703 ASSERT(!node.codeOrigin.inlineCallFrame);4703 RELEASE_ASSERT(!node.codeOrigin.inlineCallFrame); 4704 4704 4705 4705 JSValueOperand activationValue(this, node.child1()); … … 4768 4768 } 4769 4769 4770 ASSERT(!node.codeOrigin.inlineCallFrame);4770 RELEASE_ASSERT(!node.codeOrigin.inlineCallFrame); 4771 4771 m_jit.load32(JITCompiler::payloadFor(JSStack::ArgumentCount), resultGPR); 4772 4772 m_jit.sub32(TrustedImm32(1), resultGPR); -
trunk/Source/JavaScriptCore/dfg/DFGValueSource.h
r140594 r140619 66 66 return ArgumentsSource; 67 67 default: 68 ASSERT(dataFormat & DataFormatJS);68 RELEASE_ASSERT(dataFormat & DataFormatJS); 69 69 return ValueInJSStack; 70 70 } … … 123 123 : m_nodeIndex(nodeIndex) 124 124 { 125 ASSERT(nodeIndex != NoNode);125 RELEASE_ASSERT(nodeIndex != NoNode); 126 126 ASSERT(kind() == HaveNode); 127 127 } -
trunk/Source/JavaScriptCore/dfg/DFGVirtualRegisterAllocationPhase.cpp
r135469 r140619 31 31 #include "DFGGraph.h" 32 32 #include "DFGScoreBoard.h" 33 #include "JSCellInlines.h" 33 34 34 35 namespace JSC { namespace DFG { -
trunk/Source/JavaScriptCore/heap/BlockAllocator.cpp
r136077 r140619 45 45 , m_blockFreeingThread(createThread(blockFreeingThreadStartFunc, this, "JavaScriptCore::BlockFree")) 46 46 { 47 ASSERT(m_blockFreeingThread);47 RELEASE_ASSERT(m_blockFreeingThread); 48 48 m_regionLock.Init(); 49 49 } … … 70 70 else { 71 71 region = m_emptyRegions.removeHead(); 72 ASSERT(region);72 RELEASE_ASSERT(region); 73 73 m_numberOfEmptyRegions--; 74 74 } … … 142 142 else { 143 143 region = m_emptyRegions.removeHead(); 144 ASSERT(region);144 RELEASE_ASSERT(region); 145 145 m_numberOfEmptyRegions--; 146 146 } -
trunk/Source/JavaScriptCore/heap/Heap.cpp
r140584 r140619 281 281 void Heap::lastChanceToFinalize() 282 282 { 283 ASSERT(!m_globalData->dynamicGlobalObject);284 ASSERT(m_operationInProgress == NoOperation);283 RELEASE_ASSERT(!m_globalData->dynamicGlobalObject); 284 RELEASE_ASSERT(m_operationInProgress == NoOperation); 285 285 286 286 m_objectSpace.lastChanceToFinalize(); … … 719 719 GCPHASE(Collect); 720 720 ASSERT(globalData()->apiLock().currentThreadIsHoldingLock()); 721 ASSERT(globalData()->identifierTable == wtfThreadData().currentIdentifierTable());721 RELEASE_ASSERT(globalData()->identifierTable == wtfThreadData().currentIdentifierTable()); 722 722 ASSERT(m_isSafeToCollect); 723 723 JAVASCRIPTCORE_GC_BEGIN(); -
trunk/Source/JavaScriptCore/interpreter/Interpreter.cpp
r140594 r140619 791 791 int targetDepth = handler->scopeDepth; 792 792 scopeDelta = currentDepth - targetDepth; 793 ASSERT(scopeDelta >= 0);793 RELEASE_ASSERT(scopeDelta >= 0); 794 794 } 795 795 while (scopeDelta--) … … 836 836 ASSERT(isValidThisObject(thisObj, callFrame)); 837 837 ASSERT(!globalData.exception); 838 RELEASE_ASSERT(!globalData.isCollectorBusy()); 838 ASSERT(!globalData.isCollectorBusy()); 839 if (globalData.isCollectorBusy()) 840 return jsNull(); 839 841 840 842 StackStats::CheckPoint stackCheckPoint; … … 1265 1267 JSObject* variableObject; 1266 1268 for (JSScope* node = scope; ; node = node->next()) { 1267 ASSERT(node);1269 RELEASE_ASSERT(node); 1268 1270 if (node->isVariableObject() && !node->isNameScopeObject()) { 1269 1271 variableObject = node; -
trunk/Source/JavaScriptCore/jit/GCAwareJITStubRoutine.cpp
r139541 r140619 61 61 } 62 62 63 ASSERT(!m_refCount);63 RELEASE_ASSERT(!m_refCount); 64 64 65 65 m_isJettisoned = true; -
trunk/Source/JavaScriptCore/jit/JIT.cpp
r140594 r140619 409 409 } 410 410 411 ASSERT(m_callLinkInfoIndex == m_callStructureStubCompilationInfo.size());411 RELEASE_ASSERT(m_callLinkInfoIndex == m_callStructureStubCompilationInfo.size()); 412 412 413 413 #ifndef NDEBUG … … 434 434 m_callLinkInfoIndex = 0; 435 435 436 #if !ASSERT_DISABLED &&ENABLE(VALUE_PROFILER)436 #if ENABLE(VALUE_PROFILER) 437 437 // Use this to assert that slow-path code associates new profiling sites with existing 438 438 // ValueProfiles rather than creating new ones. This ensures that for a given instruction … … 450 450 451 451 m_bytecodeOffset = iter->to; 452 #ifndef NDEBUG 452 453 453 unsigned firstTo = m_bytecodeOffset; 454 #endif 454 455 455 Instruction* currentInstruction = instructionsBegin + m_bytecodeOffset; 456 456 … … 555 555 } 556 556 557 ASSERT_WITH_MESSAGE(iter == m_slowCases.end() || firstTo != iter->to,"Not enough jumps linked in slow case codegen.");558 ASSERT_WITH_MESSAGE(firstTo == (iter - 1)->to, "Too many jumps linked in slow case codegen.");557 RELEASE_ASSERT_WITH_MESSAGE(iter == m_slowCases.end() || firstTo != iter->to, "Not enough jumps linked in slow case codegen."); 558 RELEASE_ASSERT_WITH_MESSAGE(firstTo == (iter - 1)->to, "Too many jumps linked in slow case codegen."); 559 559 560 560 #if ENABLE(VALUE_PROFILER) … … 566 566 } 567 567 568 ASSERT(m_propertyAccessInstructionIndex == m_propertyAccessCompilationInfo.size());569 ASSERT(m_callLinkInfoIndex == m_callStructureStubCompilationInfo.size());568 RELEASE_ASSERT(m_propertyAccessInstructionIndex == m_propertyAccessCompilationInfo.size()); 569 RELEASE_ASSERT(m_callLinkInfoIndex == m_callStructureStubCompilationInfo.size()); 570 570 #if ENABLE(VALUE_PROFILER) 571 ASSERT(numberOfValueProfiles == m_codeBlock->numberOfValueProfiles());571 RELEASE_ASSERT(numberOfValueProfiles == m_codeBlock->numberOfValueProfiles()); 572 572 #endif 573 573 -
trunk/Source/JavaScriptCore/jit/JITExceptions.cpp
r139541 r140619 40 40 ExceptionHandler genericThrow(JSGlobalData* globalData, ExecState* callFrame, JSValue exceptionValue, unsigned vPCIndex) 41 41 { 42 ASSERT(exceptionValue);42 RELEASE_ASSERT(exceptionValue); 43 43 44 44 globalData->exception = JSValue(); … … 58 58 globalData->targetInterpreterPCForThrow = catchPCForInterpreter; 59 59 60 ASSERT(catchRoutine);60 RELEASE_ASSERT(catchRoutine); 61 61 ExceptionHandler exceptionHandler = { catchRoutine, callFrame }; 62 62 return exceptionHandler; -
trunk/Source/JavaScriptCore/jit/JITInlines.h
r138516 r140619 510 510 inline void JIT::emitLoad(int index, RegisterID tag, RegisterID payload, RegisterID base) 511 511 { 512 ASSERT(tag != payload);512 RELEASE_ASSERT(tag != payload); 513 513 514 514 if (base == callFrameRegister) { 515 ASSERT(payload != base);515 RELEASE_ASSERT(payload != base); 516 516 emitLoadPayload(index, payload); 517 517 emitLoadTag(index, tag); -
trunk/Source/JavaScriptCore/jit/JITOpcodes.cpp
r138516 r140619 82 82 void JIT::emit_op_end(Instruction* currentInstruction) 83 83 { 84 ASSERT(returnValueRegister != callFrameRegister);84 RELEASE_ASSERT(returnValueRegister != callFrameRegister); 85 85 emitGetVirtualRegister(currentInstruction[1].u.operand, returnValueRegister); 86 86 restoreReturnAddressBeforeReturn(Address(callFrameRegister, JSStack::ReturnPC * static_cast<int>(sizeof(Register)))); … … 1307 1307 return; 1308 1308 case ResolveOperation::SetBaseToGlobal: 1309 ASSERT(baseVR);1309 RELEASE_ASSERT(baseVR); 1310 1310 setBase = true; 1311 1311 move(TrustedImmPtr(globalObject), scratch); … … 1315 1315 break; 1316 1316 case ResolveOperation::SetBaseToUndefined: { 1317 ASSERT(baseVR);1317 RELEASE_ASSERT(baseVR); 1318 1318 setBase = true; 1319 1319 #if USE(JSVALUE64) … … 1328 1328 } 1329 1329 case ResolveOperation::SetBaseToScope: 1330 ASSERT(baseVR);1330 RELEASE_ASSERT(baseVR); 1331 1331 setBase = true; 1332 1332 emitStoreCell(*baseVR, scope); … … 1336 1336 case ResolveOperation::ReturnScopeAsBase: 1337 1337 emitStoreCell(*baseVR, scope); 1338 ASSERT(value == regT0);1338 RELEASE_ASSERT(value == regT0); 1339 1339 move(scope, value); 1340 1340 #if USE(JSVALUE32_64) … … 1386 1386 emitStoreCell(*baseVR, scope); 1387 1387 1388 ASSERT(valueVR);1388 RELEASE_ASSERT(valueVR); 1389 1389 ResolveOperation* resolveValueOperation = pc; 1390 1390 switch (resolveValueOperation->m_operation) { -
trunk/Source/JavaScriptCore/jit/JITStubRoutine.cpp
r127202 r140619 39 39 void JITStubRoutine::observeZeroRefCount() 40 40 { 41 ASSERT(!m_refCount);41 RELEASE_ASSERT(!m_refCount); 42 42 delete this; 43 43 } -
trunk/Source/JavaScriptCore/jit/JITStubs.cpp
r140594 r140619 1037 1037 static NEVER_INLINE void returnToThrowTrampoline(JSGlobalData* globalData, ReturnAddressPtr exceptionLocation, ReturnAddressPtr& returnAddressSlot) 1038 1038 { 1039 ASSERT(globalData->exception);1039 RELEASE_ASSERT(globalData->exception); 1040 1040 globalData->exceptionLocation = exceptionLocation; 1041 1041 returnAddressSlot = ReturnAddressPtr(FunctionPtr(ctiVMThrowTrampoline)); -
trunk/Source/JavaScriptCore/runtime/Arguments.cpp
r140594 r140619 128 128 unsigned i = propertyName.asIndex(); 129 129 if (JSValue value = thisObject->tryGetArgument(i)) { 130 ASSERT(i < PropertyName::NotAnIndex);130 RELEASE_ASSERT(i < PropertyName::NotAnIndex); 131 131 slot.setValue(value); 132 132 return true; … … 157 157 unsigned i = propertyName.asIndex(); 158 158 if (JSValue value = thisObject->tryGetArgument(i)) { 159 ASSERT(i < PropertyName::NotAnIndex);159 RELEASE_ASSERT(i < PropertyName::NotAnIndex); 160 160 descriptor.setDescriptor(value, None); 161 161 return true; … … 254 254 unsigned i = propertyName.asIndex(); 255 255 if (i < thisObject->m_numArguments) { 256 ASSERT(i < PropertyName::NotAnIndex);256 RELEASE_ASSERT(i < PropertyName::NotAnIndex); 257 257 if (!Base::deleteProperty(cell, exec, propertyName)) 258 258 return false; … … 285 285 unsigned i = propertyName.asIndex(); 286 286 if (i < thisObject->m_numArguments) { 287 ASSERT(i < PropertyName::NotAnIndex);287 RELEASE_ASSERT(i < PropertyName::NotAnIndex); 288 288 // If the property is not yet present on the object, and is not yet marked as deleted, then add it now. 289 289 PropertySlot slot; … … 367 367 void Arguments::didTearOffActivation(ExecState* exec, JSActivation* activation) 368 368 { 369 ASSERT(activation);369 RELEASE_ASSERT(activation); 370 370 if (isTornOff()) 371 371 return; -
trunk/Source/JavaScriptCore/runtime/ArrayPrototype.cpp
r140259 r140619 195 195 void shift(ExecState* exec, JSObject* thisObj, unsigned header, unsigned currentCount, unsigned resultCount, unsigned length) 196 196 { 197 ASSERT(currentCount > resultCount);197 RELEASE_ASSERT(currentCount > resultCount); 198 198 unsigned count = currentCount - resultCount; 199 199 200 ASSERT(header <= length);201 ASSERT(currentCount <= (length - header));200 RELEASE_ASSERT(header <= length); 201 RELEASE_ASSERT(currentCount <= (length - header)); 202 202 203 203 if (isJSArray(thisObj)) { … … 233 233 void unshift(ExecState* exec, JSObject* thisObj, unsigned header, unsigned currentCount, unsigned resultCount, unsigned length) 234 234 { 235 ASSERT(resultCount > currentCount);235 RELEASE_ASSERT(resultCount > currentCount); 236 236 unsigned count = resultCount - currentCount; 237 237 238 ASSERT(header <= length);239 ASSERT(currentCount <= (length - header));238 RELEASE_ASSERT(header <= length); 239 RELEASE_ASSERT(currentCount <= (length - header)); 240 240 241 241 // Guard against overflow. … … 1291 1291 JSValue searchElement = exec->argument(0); 1292 1292 do { 1293 ASSERT(index < length);1293 RELEASE_ASSERT(index < length); 1294 1294 JSValue e = getProperty(exec, thisObj, index); 1295 1295 if (exec->hadException()) -
trunk/Source/JavaScriptCore/runtime/ButterflyInlines.h
r140584 r140619 75 75 inline Butterfly* Butterfly::growPropertyStorage(JSGlobalData& globalData, size_t preCapacity, size_t oldPropertyCapacity, bool hasIndexingHeader, size_t indexingPayloadSizeInBytes, size_t newPropertyCapacity) 76 76 { 77 ASSERT(newPropertyCapacity > oldPropertyCapacity);77 RELEASE_ASSERT(newPropertyCapacity > oldPropertyCapacity); 78 78 Butterfly* result = createUninitialized( 79 79 globalData, preCapacity, newPropertyCapacity, hasIndexingHeader, indexingPayloadSizeInBytes); -
trunk/Source/JavaScriptCore/runtime/CodeCache.cpp
r139541 r140619 161 161 ExpressionNode* funcExpr = static_cast<ExprStatementNode*>(exprStatement)->expr(); 162 162 ASSERT(funcExpr); 163 ASSERT(funcExpr->isFuncExprNode());163 RELEASE_ASSERT(funcExpr->isFuncExprNode()); 164 164 FunctionBodyNode* body = static_cast<FuncExprNode*>(funcExpr)->body(); 165 165 ASSERT(body); -
trunk/Source/JavaScriptCore/runtime/CodeCache.h
r138675 r140619 81 81 m_data[newIndex].first = key; 82 82 m_data[newIndex].second = value; 83 ASSERT(m_map.size() <= CacheSize);83 RELEASE_ASSERT(m_map.size() <= CacheSize); 84 84 } 85 85 -
trunk/Source/JavaScriptCore/runtime/Completion.cpp
r140584 r140619 40 40 { 41 41 JSLockHolder lock(exec); 42 ASSERT(exec->globalData().identifierTable == wtfThreadData().currentIdentifierTable());42 RELEASE_ASSERT(exec->globalData().identifierTable == wtfThreadData().currentIdentifierTable()); 43 43 44 44 ProgramExecutable* program = ProgramExecutable::create(exec, source); … … 83 83 } 84 84 85 ASSERT(result);85 RELEASE_ASSERT(result); 86 86 return result; 87 87 } -
trunk/Source/JavaScriptCore/runtime/Executable.cpp
r140594 r140619 145 145 , m_unlinkedExecutable(globalData, this, unlinkedExecutable) 146 146 { 147 ASSERT(!source.isNull());147 RELEASE_ASSERT(!source.isNull()); 148 148 ASSERT(source.length()); 149 149 m_firstLine = firstLine; … … 263 263 if (!m_jitCodeForCall) 264 264 return; 265 ASSERT(m_evalCodeBlock);265 RELEASE_ASSERT(m_evalCodeBlock); 266 266 m_evalCodeBlock->unlinkCalls(); 267 267 #endif … … 289 289 JSObject* ProgramExecutable::compileOptimized(ExecState* exec, JSScope* scope, unsigned bytecodeIndex) 290 290 { 291 ASSERT(exec->globalData().dynamicGlobalObject);291 RELEASE_ASSERT(exec->globalData().dynamicGlobalObject); 292 292 ASSERT(!!m_programCodeBlock); 293 293 JSObject* error = 0; … … 352 352 if (!m_jitCodeForCall) 353 353 return; 354 ASSERT(m_programCodeBlock);354 RELEASE_ASSERT(m_programCodeBlock); 355 355 m_programCodeBlock->unlinkCalls(); 356 356 #endif … … 376 376 JSObject* ProgramExecutable::initializeGlobalProperties(JSGlobalData& globalData, CallFrame* callFrame, JSScope* scope) 377 377 { 378 ASSERT(scope);378 RELEASE_ASSERT(scope); 379 379 JSGlobalObject* globalObject = scope->globalObject(); 380 ASSERT(globalObject);380 RELEASE_ASSERT(globalObject); 381 381 ASSERT(&globalObject->globalData() == &globalData); 382 382 … … 443 443 result = m_codeBlockForCall.get(); 444 444 else { 445 ASSERT(kind == CodeForConstruct);445 RELEASE_ASSERT(kind == CodeForConstruct); 446 446 result = m_codeBlockForConstruct.get(); 447 447 } … … 450 450 while (result->alternative()) 451 451 result = static_cast<FunctionCodeBlock*>(result->alternative()); 452 ASSERT(result);452 RELEASE_ASSERT(result); 453 453 ASSERT(JITCode::isBaselineCode(result->getJITType())); 454 454 return result; … … 457 457 JSObject* FunctionExecutable::compileOptimizedForCall(ExecState* exec, JSScope* scope, unsigned bytecodeIndex) 458 458 { 459 ASSERT(exec->globalData().dynamicGlobalObject);459 RELEASE_ASSERT(exec->globalData().dynamicGlobalObject); 460 460 ASSERT(!!m_codeBlockForCall); 461 461 JSObject* error = 0; … … 468 468 JSObject* FunctionExecutable::compileOptimizedForConstruct(ExecState* exec, JSScope* scope, unsigned bytecodeIndex) 469 469 { 470 ASSERT(exec->globalData().dynamicGlobalObject);470 RELEASE_ASSERT(exec->globalData().dynamicGlobalObject); 471 471 ASSERT(!!m_codeBlockForConstruct); 472 472 JSObject* error = 0; … … 533 533 534 534 m_numParametersForCall = m_codeBlockForCall->numParameters(); 535 ASSERT(m_numParametersForCall);535 RELEASE_ASSERT(m_numParametersForCall); 536 536 537 537 #if ENABLE(JIT) … … 569 569 570 570 m_numParametersForConstruct = m_codeBlockForConstruct->numParameters(); 571 ASSERT(m_numParametersForConstruct);571 RELEASE_ASSERT(m_numParametersForConstruct); 572 572 573 573 #if ENABLE(JIT) … … 640 640 #if ENABLE(JIT) 641 641 if (!!m_jitCodeForCall) { 642 ASSERT(m_codeBlockForCall);642 RELEASE_ASSERT(m_codeBlockForCall); 643 643 m_codeBlockForCall->unlinkCalls(); 644 644 } 645 645 if (!!m_jitCodeForConstruct) { 646 ASSERT(m_codeBlockForConstruct);646 RELEASE_ASSERT(m_codeBlockForConstruct); 647 647 m_codeBlockForConstruct->unlinkCalls(); 648 648 } … … 680 680 return CodeBlockHash(static_cast<unsigned>(bitwise_cast<size_t>(m_function))); 681 681 682 ASSERT(kind == CodeForConstruct);682 RELEASE_ASSERT(kind == CodeForConstruct); 683 683 return CodeBlockHash(static_cast<unsigned>(bitwise_cast<size_t>(m_constructor))); 684 684 } -
trunk/Source/JavaScriptCore/runtime/Executable.h
r140594 r140619 430 430 JSObject* compile(ExecState* exec, JSScope* scope) 431 431 { 432 ASSERT(exec->globalData().dynamicGlobalObject);432 RELEASE_ASSERT(exec->globalData().dynamicGlobalObject); 433 433 JSObject* error = 0; 434 434 if (!m_evalCodeBlock) … … 507 507 JSObject* compile(ExecState* exec, JSScope* scope) 508 508 { 509 ASSERT(exec->globalData().dynamicGlobalObject);509 RELEASE_ASSERT(exec->globalData().dynamicGlobalObject); 510 510 JSObject* error = 0; 511 511 if (!m_programCodeBlock) … … 602 602 JSObject* compileForCall(ExecState* exec, JSScope* scope) 603 603 { 604 ASSERT(exec->globalData().dynamicGlobalObject);604 RELEASE_ASSERT(exec->globalData().dynamicGlobalObject); 605 605 JSObject* error = 0; 606 606 if (!m_codeBlockForCall) … … 630 630 JSObject* compileForConstruct(ExecState* exec, JSScope* scope) 631 631 { 632 ASSERT(exec->globalData().dynamicGlobalObject);632 RELEASE_ASSERT(exec->globalData().dynamicGlobalObject); 633 633 JSObject* error = 0; 634 634 if (!m_codeBlockForConstruct) -
trunk/Source/JavaScriptCore/runtime/IndexingHeader.h
r128400 r140619 58 58 void setVectorLength(uint32_t length) 59 59 { 60 ASSERT(length <= maximumLength);60 RELEASE_ASSERT(length <= maximumLength); 61 61 m_vectorLength = length; 62 62 } -
trunk/Source/JavaScriptCore/runtime/JSArray.cpp
r140594 r140619 470 470 return jsUndefined(); 471 471 472 ASSERT(length < m_butterfly->vectorLength());472 RELEASE_ASSERT(length < m_butterfly->vectorLength()); 473 473 JSValue value = m_butterfly->contiguous()[length].get(); 474 474 if (value) { … … 486 486 return jsUndefined(); 487 487 488 ASSERT(length < m_butterfly->vectorLength());488 RELEASE_ASSERT(length < m_butterfly->vectorLength()); 489 489 double value = m_butterfly->contiguousDouble()[length]; 490 490 if (value == value) { … … 514 514 valueSlot.clear(); 515 515 516 ASSERT(isLengthWritable());516 RELEASE_ASSERT(isLengthWritable()); 517 517 storage->setLength(index); 518 518 return element; … … 682 682 { 683 683 unsigned oldLength = storage->length(); 684 ASSERT(count <= oldLength);684 RELEASE_ASSERT(count <= oldLength); 685 685 686 686 // If the array contains holes or is otherwise in an abnormal state, … … 737 737 bool JSArray::shiftCountWithAnyIndexingType(ExecState* exec, unsigned startIndex, unsigned count) 738 738 { 739 ASSERT(count > 0);739 RELEASE_ASSERT(count > 0); 740 740 741 741 switch (structure()->indexingType()) { … … 750 750 case ArrayWithContiguous: { 751 751 unsigned oldLength = m_butterfly->publicLength(); 752 ASSERT(count <= oldLength);752 RELEASE_ASSERT(count <= oldLength); 753 753 754 754 // We may have to walk the entire array to do the shift. We're willing to do … … 785 785 case ArrayWithDouble: { 786 786 unsigned oldLength = m_butterfly->publicLength(); 787 ASSERT(count <= oldLength);787 RELEASE_ASSERT(count <= oldLength); 788 788 789 789 // We may have to walk the entire array to do the shift. We're willing to do … … 833 833 unsigned length = storage->length(); 834 834 835 ASSERT(startIndex <= length);835 RELEASE_ASSERT(startIndex <= length); 836 836 837 837 // If the array contains holes or is otherwise in an abnormal state, -
trunk/Source/JavaScriptCore/runtime/JSGlobalObjectFunctions.cpp
r139541 r140619 365 365 static double jsStrDecimalLiteral(const CharType*& data, const CharType* end) 366 366 { 367 ASSERT(data < end);367 RELEASE_ASSERT(data < end); 368 368 369 369 size_t parsedLength; -
trunk/Source/JavaScriptCore/runtime/JSObject.cpp
r140594 r140619 136 136 currentTarget = newButterfly->contiguous(); 137 137 currentSource = butterfly->contiguous(); 138 ASSERT(newButterfly->publicLength() <= newButterfly->vectorLength());138 RELEASE_ASSERT(newButterfly->publicLength() <= newButterfly->vectorLength()); 139 139 count = newButterfly->vectorLength(); 140 140 break; … … 1701 1701 1702 1702 SparseArrayValueMap* map = m_butterfly->arrayStorage()->m_sparseMap.get(); 1703 ASSERT(map);1703 RELEASE_ASSERT(map); 1704 1704 1705 1705 // 1. Let current be the result of calling the [[GetOwnProperty]] internal method of O with property name P. … … 1874 1874 ensureLength(globalData, i + 1); 1875 1875 1876 ASSERT(i < m_butterfly->vectorLength());1876 RELEASE_ASSERT(i < m_butterfly->vectorLength()); 1877 1877 switch (indexingShape) { 1878 1878 case Int32Shape: -
trunk/Source/JavaScriptCore/runtime/JSString.cpp
r127809 r140619 234 234 return jsEmptyString(exec); 235 235 ASSERT(!isRope()); 236 ASSERT(i < m_value.length());236 RELEASE_ASSERT(i < m_value.length()); 237 237 return jsSingleCharacterSubstring(exec, m_value, i); 238 238 } -
trunk/Source/JavaScriptCore/yarr/YarrInterpreter.cpp
r140594 r140619 84 84 static inline void popParenthesesDisjunctionContext(BackTrackInfoParentheses* backTrack) 85 85 { 86 ASSERT(backTrack->matchAmount);87 ASSERT(backTrack->lastContext);86 RELEASE_ASSERT(backTrack->matchAmount); 87 RELEASE_ASSERT(backTrack->lastContext); 88 88 backTrack->lastContext = backTrack->lastContext->next; 89 89 --backTrack->matchAmount;
Note: See TracChangeset
for help on using the changeset viewer.