Ignore:
Timestamp:
Jul 26, 2014, 12:06:44 PM (11 years ago)
Author:
[email protected]
Message:

Unreviewed, roll out r171641-r171644. It broke some tests; will investigate and
reland later.

Source/JavaScriptCore:

  • CMakeLists.txt:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/BytecodeList.json:
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::CodeBlock):
(JSC::CodeBlock::finalizeUnconditionally):
(JSC::CodeBlock::printPutByIdCacheStatus): Deleted.

  • bytecode/CodeBlock.h:
  • bytecode/GetByIdStatus.cpp:

(JSC::GetByIdStatus::computeForStubInfo):
(JSC::GetByIdStatus::computeFor):

  • bytecode/GetByIdStatus.h:
  • bytecode/GetByIdVariant.cpp:

(JSC::GetByIdVariant::dumpInContext):

  • bytecode/GetByIdVariant.h:

(JSC::GetByIdVariant::structureSet):

  • bytecode/Instruction.h:
  • bytecode/PutByIdStatus.cpp:

(JSC::PutByIdStatus::appendVariant):
(JSC::PutByIdStatus::computeForStubInfo):
(JSC::PutByIdStatus::computeFor):

  • bytecode/PutByIdStatus.h:
  • bytecode/PutByIdVariant.cpp:

(JSC::PutByIdVariant::dumpInContext):
(JSC::PutByIdVariant::oldStructureForTransition): Deleted.
(JSC::PutByIdVariant::writesStructures): Deleted.
(JSC::PutByIdVariant::reallocatesStorage): Deleted.
(JSC::PutByIdVariant::attemptToMerge): Deleted.
(JSC::PutByIdVariant::attemptToMergeTransitionWithReplace): Deleted.

  • bytecode/PutByIdVariant.h:

(JSC::PutByIdVariant::PutByIdVariant):
(JSC::PutByIdVariant::replace):
(JSC::PutByIdVariant::transition):
(JSC::PutByIdVariant::structure):
(JSC::PutByIdVariant::oldStructure):
(JSC::PutByIdVariant::newStructure):
(JSC::PutByIdVariant::constantChecks):

  • bytecode/StructureSet.cpp:

(JSC::StructureSet::filter): Deleted.
(JSC::StructureSet::filterArrayModes): Deleted.

  • bytecode/StructureSet.h:

(JSC::StructureSet::onlyStructure):

  • bytecode/ToThisStatus.cpp: Removed.
  • bytecode/ToThisStatus.h: Removed.
  • bytecode/TypeLocation.h: Removed.
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::emitMove):
(JSC::BytecodeGenerator::emitPutToScope):
(JSC::BytecodeGenerator::emitPutById):
(JSC::BytecodeGenerator::emitPutByVal):
(JSC::BytecodeGenerator::emitProfileTypesWithHighFidelity): Deleted.

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::isProfilingTypesWithHighFidelity): Deleted.

  • bytecompiler/NodesCodegen.cpp:

(JSC::PostfixNode::emitResolve):
(JSC::PrefixNode::emitResolve):
(JSC::ReadModifyResolveNode::emitBytecode):
(JSC::AssignResolveNode::emitBytecode):
(JSC::ConstDeclNode::emitCodeSingle):
(JSC::ForInNode::emitBytecode):

  • debugger/DebuggerActivation.cpp: Added.

(JSC::DebuggerActivation::DebuggerActivation):
(JSC::DebuggerActivation::finishCreation):
(JSC::DebuggerActivation::visitChildren):
(JSC::DebuggerActivation::className):
(JSC::DebuggerActivation::getOwnPropertySlot):
(JSC::DebuggerActivation::put):
(JSC::DebuggerActivation::deleteProperty):
(JSC::DebuggerActivation::getOwnPropertyNames):
(JSC::DebuggerActivation::defineOwnProperty):

  • debugger/DebuggerActivation.h: Added.

(JSC::DebuggerActivation::create):
(JSC::DebuggerActivation::createStructure):

  • debugger/DebuggerScope.cpp: Removed.
  • debugger/DebuggerScope.h: Removed.
  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::observeTransition):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::observeTransitions):

  • dfg/DFGAbstractValue.cpp:

(JSC::DFG::AbstractValue::changeStructure): Deleted.
(JSC::DFG::AbstractValue::contains): Deleted.

  • dfg/DFGAbstractValue.h:

(JSC::DFG::AbstractValue::couldBeType):
(JSC::DFG::AbstractValue::isType):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handlePutById):
(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):
(JSC::DFG::ConstantFoldingPhase::emitGetByOffset):
(JSC::DFG::ConstantFoldingPhase::emitPutByOffset):
(JSC::DFG::ConstantFoldingPhase::addBaseCheck): Deleted.
(JSC::DFG::ConstantFoldingPhase::addChecks): Deleted.

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::visitChildren):
(JSC::DFG::Graph::freezeStrong):

  • dfg/DFGGraph.h:
  • dfg/DFGNode.cpp:

(JSC::DFG::MultiPutByOffsetData::writesStructures):
(JSC::DFG::MultiPutByOffsetData::reallocatesStorage):

  • dfg/DFGNode.h:

(JSC::DFG::Node::convertToPutByOffset):
(JSC::DFG::Node::hasTransition):
(JSC::DFG::Node::convertToMultiGetByOffset): Deleted.
(JSC::DFG::Node::convertToMultiPutByOffset): Deleted.

  • dfg/DFGNodeType.h:
  • dfg/DFGPredictionPropagationPhase.cpp:

(JSC::DFG::PredictionPropagationPhase::propagate):

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::silentSavePlanForGPR):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::fillSpeculateCell):
(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::fillJSValue):
(JSC::DFG::SpeculativeJIT::nonSpeculativeCompareNull):
(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::fillSpeculateInt32Internal):
(JSC::DFG::SpeculativeJIT::fillSpeculateInt32Strict):
(JSC::DFG::SpeculativeJIT::fillSpeculateInt52):
(JSC::DFG::SpeculativeJIT::fillSpeculateDouble):
(JSC::DFG::SpeculativeJIT::fillSpeculateCell):
(JSC::DFG::SpeculativeJIT::fillSpeculateBoolean):
(JSC::DFG::SpeculativeJIT::compileLogicalNot):
(JSC::DFG::SpeculativeJIT::emitBranch):
(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGStructureAbstractValue.cpp:

(JSC::DFG::StructureAbstractValue::observeTransition):
(JSC::DFG::StructureAbstractValue::observeTransitions):

  • dfg/DFGStructureAbstractValue.h:

(JSC::DFG::StructureAbstractValue::onlyStructure):
(JSC::DFG::StructureAbstractValue::operator=): Deleted.
(JSC::DFG::StructureAbstractValue::set): Deleted.

  • dfg/DFGValidate.cpp:

(JSC::DFG::Validate::validate):

  • dfg/DFGWatchableStructureWatchingPhase.cpp:

(JSC::DFG::WatchableStructureWatchingPhase::run):

  • ftl/FTLAbbreviations.h:

(JSC::FTL::getLinkage): Deleted.

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compilePhantomPutStructure):
(JSC::FTL::LowerDFGToLLVM::compileMultiGetByOffset):
(JSC::FTL::LowerDFGToLLVM::compileMultiPutByOffset):
(JSC::FTL::LowerDFGToLLVM::getModuleByPathForSymbol):

  • heap/Heap.cpp:

(JSC::Heap::collect):

  • inspector/agents/InspectorRuntimeAgent.cpp:

(Inspector::InspectorRuntimeAgent::getRuntimeTypeForVariableInTextRange): Deleted.

  • inspector/agents/InspectorRuntimeAgent.h:
  • inspector/protocol/Runtime.json:
  • jsc.cpp:

(GlobalObject::finishCreation):
(functionDumpTypesForAllVariables): Deleted.

  • llint/LLIntData.cpp:

(JSC::LLInt::Data::performAssertions):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):
(JSC::LLInt::putToScopeCommon): Deleted.

  • llint/LLIntSlowPaths.h:
  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/ArrayBufferNeuteringWatchpoint.cpp:

(JSC::ArrayBufferNeuteringWatchpoint::createStructure):

  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/Executable.h:

(JSC::ExecutableBase::createStructure):
(JSC::NativeExecutable::createStructure):

  • runtime/HighFidelityLog.cpp: Removed.
  • runtime/HighFidelityLog.h: Removed.
  • runtime/HighFidelityTypeProfiler.cpp: Removed.
  • runtime/HighFidelityTypeProfiler.h: Removed.
  • runtime/JSObject.cpp:

(JSC::JSObject::putDirectCustomAccessor):
(JSC::JSObject::putDirectNonIndexAccessor):
(JSC::JSObject::reifyStaticFunctionsForDelete):

  • runtime/JSPromiseDeferred.h:

(JSC::JSPromiseDeferred::createStructure):

  • runtime/JSPromiseReaction.h:

(JSC::JSPromiseReaction::createStructure):

  • runtime/JSPropertyNameIterator.h:

(JSC::JSPropertyNameIterator::createStructure):

  • runtime/JSType.h:
  • runtime/JSTypeInfo.h:

(JSC::TypeInfo::TypeInfo):

  • runtime/MapData.h:

(JSC::MapData::createStructure):

  • runtime/Options.h:
  • runtime/PropertyMapHashTable.h:

(JSC::PropertyTable::createStructure):

  • runtime/RegExp.h:

(JSC::RegExp::createStructure):

  • runtime/SparseArrayValueMap.cpp:

(JSC::SparseArrayValueMap::createStructure):

  • runtime/Structure.cpp:

(JSC::StructureTransitionTable::contains):
(JSC::StructureTransitionTable::get):
(JSC::StructureTransitionTable::add):
(JSC::Structure::Structure):
(JSC::Structure::materializePropertyMap):
(JSC::Structure::addPropertyTransition):
(JSC::Structure::despecifyFunctionTransition):
(JSC::Structure::toDictionaryTransition):
(JSC::Structure::freezeTransition):
(JSC::Structure::preventExtensionsTransition):
(JSC::Structure::takePropertyTableOrCloneIfPinned):
(JSC::Structure::nonPropertyTransition):
(JSC::Structure::flattenDictionaryStructure):
(JSC::Structure::addPropertyWithoutTransition):
(JSC::Structure::pin):
(JSC::Structure::allocateRareData):
(JSC::Structure::cloneRareDataFrom):
(JSC::Structure::getConcurrently):
(JSC::Structure::putSpecificValue):
(JSC::Structure::getPropertyNamesFromStructure):
(JSC::Structure::visitChildren):
(JSC::Structure::checkConsistency):
(JSC::Structure::toStructureShape): Deleted.

  • runtime/Structure.h:

(JSC::Structure::isExtensible):
(JSC::Structure::didTransition):
(JSC::Structure::isDictionary):
(JSC::Structure::isUncacheableDictionary):
(JSC::Structure::hasBeenFlattenedBefore):
(JSC::Structure::propertyAccessesAreCacheable):
(JSC::Structure::previousID):
(JSC::Structure::hasGetterSetterProperties):
(JSC::Structure::hasReadOnlyOrGetterSetterPropertiesExcludingProto):
(JSC::Structure::setHasGetterSetterProperties):
(JSC::Structure::hasCustomGetterSetterProperties):
(JSC::Structure::setHasCustomGetterSetterProperties):
(JSC::Structure::setContainsReadOnlyProperties):
(JSC::Structure::hasNonEnumerableProperties):
(JSC::Structure::disableSpecificFunctionTracking):
(JSC::Structure::objectToStringValue):
(JSC::Structure::setObjectToStringValue):
(JSC::Structure::staticFunctionsReified):
(JSC::Structure::setStaticFunctionsReified):
(JSC::Structure::transitionWatchpointSet):
(JSC::Structure::setPreviousID):
(JSC::Structure::clearPreviousID):
(JSC::Structure::previous):
(JSC::Structure::rareData):
(JSC::Structure::setHasGetterSetterPropertiesWithProtoCheck): Deleted.
(JSC::Structure::setHasCustomGetterSetterPropertiesWithProtoCheck): Deleted.

  • runtime/StructureChain.h:

(JSC::StructureChain::createStructure):

  • runtime/StructureInlines.h:

(JSC::Structure::setEnumerationCache):
(JSC::Structure::enumerationCache):
(JSC::Structure::checkOffsetConsistency):

  • runtime/StructureRareData.cpp:

(JSC::StructureRareData::createStructure):

  • runtime/SymbolTable.cpp:

(JSC::SymbolTable::SymbolTable):
(JSC::SymbolTable::cloneCapturedNames):
(JSC::SymbolTable::uniqueIDForVariable): Deleted.
(JSC::SymbolTable::uniqueIDForRegister): Deleted.
(JSC::SymbolTable::globalTypeSetForRegister): Deleted.
(JSC::SymbolTable::globalTypeSetForVariable): Deleted.

  • runtime/SymbolTable.h:

(JSC::SymbolTable::createStructure):
(JSC::SymbolTable::add):
(JSC::SymbolTable::set):

  • runtime/TypeSet.cpp: Removed.
  • runtime/TypeSet.h: Removed.
  • runtime/VM.cpp:

(JSC::VM::VM):
(JSC::VM::getTypesForVariableInRange): Deleted.
(JSC::VM::updateHighFidelityTypeProfileState): Deleted.
(JSC::VM::dumpHighFidelityProfilingTypes): Deleted.

  • runtime/VM.h:

(JSC::VM::isProfilingTypesWithHighFidelity): Deleted.
(JSC::VM::highFidelityLog): Deleted.
(JSC::VM::highFidelityTypeProfiler): Deleted.
(JSC::VM::nextLocation): Deleted.
(JSC::VM::getNextUniqueVariableID): Deleted.

  • runtime/WeakMapData.h:

(JSC::WeakMapData::createStructure):

  • tests/stress/fold-multi-get-by-offset-to-get-by-offset-without-folding-the-structure-check.js: Removed.
  • tests/stress/fold-multi-put-by-offset-to-put-by-offset-without-folding-the-structure-check.js: Removed.
  • tests/stress/prune-multi-put-by-offset-replace-or-transition-variant.js: Removed.

Source/WebCore:

  • ForwardingHeaders/debugger/DebuggerActivation.h: Added.

Source/WebKit/mac:

  • WebView/WebScriptDebugDelegate.mm:

Source/WTF:

  • wtf/text/WTFString.h:

LayoutTests:

  • js/regress/fold-get-by-id-to-multi-get-by-offset-expected.txt: Removed.
  • js/regress/fold-get-by-id-to-multi-get-by-offset-rare-int-expected.txt: Removed.
  • js/regress/fold-get-by-id-to-multi-get-by-offset-rare-int.html: Removed.
  • js/regress/fold-get-by-id-to-multi-get-by-offset.html: Removed.
  • js/regress/fold-multi-get-by-offset-to-get-by-offset-expected.txt: Removed.
  • js/regress/fold-multi-get-by-offset-to-get-by-offset.html: Removed.
  • js/regress/fold-multi-get-by-offset-to-poly-get-by-offset-expected.txt: Removed.
  • js/regress/fold-multi-get-by-offset-to-poly-get-by-offset.html: Removed.
  • js/regress/fold-multi-put-by-offset-to-poly-put-by-offset-expected.txt: Removed.
  • js/regress/fold-multi-put-by-offset-to-poly-put-by-offset.html: Removed.
  • js/regress/fold-multi-put-by-offset-to-put-by-offset-expected.txt: Removed.
  • js/regress/fold-multi-put-by-offset-to-put-by-offset.html: Removed.
  • js/regress/fold-multi-put-by-offset-to-replace-or-transition-put-by-offset-expected.txt: Removed.
  • js/regress/fold-multi-put-by-offset-to-replace-or-transition-put-by-offset.html: Removed.
  • js/regress/fold-put-by-id-to-multi-put-by-offset-expected.txt: Removed.
  • js/regress/fold-put-by-id-to-multi-put-by-offset.html: Removed.
  • js/regress/fold-put-structure-expected.txt: Removed.
  • js/regress/fold-put-structure.html: Removed.
  • js/regress/hoist-poly-check-structure-effectful-loop-expected.txt: Removed.
  • js/regress/hoist-poly-check-structure-effectful-loop.html: Removed.
  • js/regress/hoist-poly-check-structure-expected.txt: Removed.
  • js/regress/hoist-poly-check-structure.html: Removed.
  • js/regress/put-by-id-replace-and-transition-expected.txt: Removed.
  • js/regress/put-by-id-replace-and-transition.html: Removed.
  • js/regress/put-by-id-slightly-polymorphic-expected.txt: Removed.
  • js/regress/put-by-id-slightly-polymorphic.html: Removed.
  • js/regress/script-tests/fold-get-by-id-to-multi-get-by-offset-rare-int.js: Removed.
  • js/regress/script-tests/fold-get-by-id-to-multi-get-by-offset.js: Removed.
  • js/regress/script-tests/fold-multi-get-by-offset-to-get-by-offset.js: Removed.
  • js/regress/script-tests/fold-multi-get-by-offset-to-poly-get-by-offset.js: Removed.
  • js/regress/script-tests/fold-multi-put-by-offset-to-poly-put-by-offset.js: Removed.
  • js/regress/script-tests/fold-multi-put-by-offset-to-put-by-offset.js: Removed.
  • js/regress/script-tests/fold-multi-put-by-offset-to-replace-or-transition-put-by-offset.js: Removed.
  • js/regress/script-tests/fold-put-by-id-to-multi-put-by-offset.js: Removed.
  • js/regress/script-tests/fold-put-structure.js: Removed.
  • js/regress/script-tests/hoist-poly-check-structure-effectful-loop.js: Removed.
  • js/regress/script-tests/hoist-poly-check-structure.js: Removed.
  • js/regress/script-tests/put-by-id-replace-and-transition.js: Removed.
  • js/regress/script-tests/put-by-id-slightly-polymorphic.js: Removed.
File:
1 edited

Legend:

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

    r171641 r171648  
    9898            default:
    9999                m_jit.load64(JITCompiler::addressFor(virtualRegister), gpr);
    100                 DFG_ASSERT(m_jit.graph(), m_currentNode, spillFormat & DataFormatJS);
     100                RELEASE_ASSERT(spillFormat & DataFormatJS);
    101101                break;
    102102            }
     
    138138    case DataFormatInt52:
    139139        // this type currently never occurs
    140         DFG_CRASH(m_jit.graph(), m_currentNode, "Bad data format");
     140        RELEASE_ASSERT_NOT_REACHED();
    141141       
    142142    default:
    143         DFG_CRASH(m_jit.graph(), m_currentNode, "Corrupt data format");
     143        RELEASE_ASSERT_NOT_REACHED();
    144144        return InvalidGPRReg;
    145145    }
     
    312312        Node* branchNode = m_block->at(branchIndexInBlock);
    313313
    314         DFG_ASSERT(m_jit.graph(), node, node->adjustedRefCount() == 1);
     314        RELEASE_ASSERT(node->adjustedRefCount() == 1);
    315315       
    316316        nonSpeculativePeepholeBranchNull(operand, branchNode, invert);
     
    629629    bool isCall = node->op() == Call;
    630630    if (!isCall)
    631         DFG_ASSERT(m_jit.graph(), node, node->op() == Construct);
    632    
     631        RELEASE_ASSERT(node->op() == Construct);
     632
    633633    // For constructors, the this argument is not passed but we have to make space
    634634    // for it.
     
    742742        DataFormat spillFormat = info.spillFormat();
    743743       
    744         DFG_ASSERT(m_jit.graph(), m_currentNode, (spillFormat & DataFormatJS) || spillFormat == DataFormatInt32);
     744        RELEASE_ASSERT((spillFormat & DataFormatJS) || spillFormat == DataFormatInt32);
    745745       
    746746        m_gprs.retain(gpr, virtualRegister, SpillOrderSpilled);
     
    772772
    773773    case DataFormatJS: {
    774         DFG_ASSERT(m_jit.graph(), m_currentNode, !(type & SpecInt52));
     774        RELEASE_ASSERT(!(type & SpecInt52));
    775775        // Check the value is an integer.
    776776        GPRReg gpr = info.gpr();
     
    835835    case DataFormatInt52:
    836836    case DataFormatStrictInt52:
    837         DFG_CRASH(m_jit.graph(), m_currentNode, "Bad data format");
     837        RELEASE_ASSERT_NOT_REACHED();
    838838       
    839839    default:
    840         DFG_CRASH(m_jit.graph(), m_currentNode, "Corrupt data format");
     840        RELEASE_ASSERT_NOT_REACHED();
    841841        return InvalidGPRReg;
    842842    }
     
    855855    DataFormat mustBeDataFormatInt32;
    856856    GPRReg result = fillSpeculateInt32Internal<true>(edge, mustBeDataFormatInt32);
    857     DFG_ASSERT(m_jit.graph(), m_currentNode, mustBeDataFormatInt32 == DataFormatInt32);
     857    RELEASE_ASSERT(mustBeDataFormatInt32 == DataFormatInt32);
    858858    return result;
    859859}
     
    890890        DataFormat spillFormat = info.spillFormat();
    891891       
    892         DFG_ASSERT(m_jit.graph(), m_currentNode, spillFormat == DataFormatInt52 || spillFormat == DataFormatStrictInt52);
     892        RELEASE_ASSERT(spillFormat == DataFormatInt52 || spillFormat == DataFormatStrictInt52);
    893893       
    894894        m_gprs.retain(gpr, virtualRegister, SpillOrderSpilled);
     
    942942
    943943    default:
    944         DFG_CRASH(m_jit.graph(), m_currentNode, "Bad data format");
     944        RELEASE_ASSERT_NOT_REACHED();
    945945        return InvalidGPRReg;
    946946    }
     
    973973       
    974974        DataFormat spillFormat = info.spillFormat();
    975         DFG_ASSERT(m_jit.graph(), m_currentNode, spillFormat == DataFormatDouble);
     975        RELEASE_ASSERT(spillFormat == DataFormatDouble);
    976976        FPRReg fpr = fprAllocate();
    977977        m_jit.loadDouble(JITCompiler::addressFor(virtualRegister), fpr);
     
    981981    }
    982982
    983     DFG_ASSERT(m_jit.graph(), m_currentNode, info.registerFormat() == DataFormatDouble);
     983    RELEASE_ASSERT(info.registerFormat() == DataFormatDouble);
    984984    FPRReg fpr = info.fpr();
    985985    m_fprs.lock(fpr);
     
    996996    GenerationInfo& info = generationInfoFromVirtualRegister(virtualRegister);
    997997
     998    if (edge->hasConstant() && !edge->isCellConstant()) {
     999        // Better to fail early on constants.
     1000        terminateSpeculativeExecution(Uncountable, JSValueRegs(), 0);
     1001        return allocate();
     1002    }
     1003
    9981004    switch (info.registerFormat()) {
    9991005    case DataFormatNone: {
     
    10021008        if (edge->hasConstant()) {
    10031009            JSValue jsValue = edge->asJSValue();
    1004             if (jsValue.isCell()) {
    1005                 m_gprs.retain(gpr, virtualRegister, SpillOrderConstant);
    1006                 m_jit.move(MacroAssembler::TrustedImm64(JSValue::encode(jsValue)), gpr);
    1007                 info.fillJSValue(*m_stream, gpr, DataFormatJSCell);
    1008                 return gpr;
    1009             }
    1010             terminateSpeculativeExecution(Uncountable, JSValueRegs(), 0);
     1010            m_gprs.retain(gpr, virtualRegister, SpillOrderConstant);
     1011            m_jit.move(MacroAssembler::TrustedImm64(JSValue::encode(jsValue)), gpr);
     1012            info.fillJSValue(*m_stream, gpr, DataFormatJSCell);
    10111013            return gpr;
    10121014        }
     
    10611063    case DataFormatInt52:
    10621064    case DataFormatStrictInt52:
    1063         DFG_CRASH(m_jit.graph(), m_currentNode, "Bad data format");
     1065        RELEASE_ASSERT_NOT_REACHED();
    10641066       
    10651067    default:
    1066         DFG_CRASH(m_jit.graph(), m_currentNode, "Corrupt data format");
     1068        RELEASE_ASSERT_NOT_REACHED();
    10671069        return InvalidGPRReg;
    10681070    }
     
    10971099            return gpr;
    10981100        }
    1099         DFG_ASSERT(m_jit.graph(), m_currentNode, info.spillFormat() & DataFormatJS);
     1101        RELEASE_ASSERT(info.spillFormat() & DataFormatJS);
    11001102        m_gprs.retain(gpr, virtualRegister, SpillOrderSpilled);
    11011103        m_jit.load64(JITCompiler::addressFor(virtualRegister), gpr);
     
    11421144    case DataFormatInt52:
    11431145    case DataFormatStrictInt52:
    1144         DFG_CRASH(m_jit.graph(), m_currentNode, "Bad data format");
     1146        RELEASE_ASSERT_NOT_REACHED();
    11451147       
    11461148    default:
    1147         DFG_CRASH(m_jit.graph(), m_currentNode, "Corrupt data format");
     1149        RELEASE_ASSERT_NOT_REACHED();
    11481150        return InvalidGPRReg;
    11491151    }
     
    16091611
    16101612    default:
    1611         DFG_CRASH(m_jit.graph(), node, "Bad use kind");
     1613        RELEASE_ASSERT_NOT_REACHED();
    16121614        break;
    16131615    }
     
    17641766       
    17651767    default:
    1766         DFG_CRASH(m_jit.graph(), m_currentNode, "Bad use kind");
     1768        RELEASE_ASSERT_NOT_REACHED();
    17671769    }
    17681770}
     
    17891791    case Identity: {
    17901792        // CSE should always eliminate this.
    1791         DFG_CRASH(m_jit.graph(), node, "Unexpected Identity node");
     1793        RELEASE_ASSERT_NOT_REACHED();
    17921794        break;
    17931795    }
     
    18701872    case ZombieHint:
    18711873    case Check: {
    1872         DFG_CRASH(m_jit.graph(), node, "Unexpected node");
     1874        RELEASE_ASSERT_NOT_REACHED();
    18731875        break;
    18741876    }
     
    19301932           
    19311933        default:
    1932             DFG_CRASH(m_jit.graph(), node, "Bad flush format");
     1934            RELEASE_ASSERT_NOT_REACHED();
    19331935            break;
    19341936        }
     
    20682070           
    20692071        default:
    2070             DFG_CRASH(m_jit.graph(), node, "Bad use kind");
     2072            RELEASE_ASSERT_NOT_REACHED();
    20712073        }
    20722074        break;
     
    21482150           
    21492151        default:
    2150             DFG_CRASH(m_jit.graph(), node, "Bad use kind");
     2152            RELEASE_ASSERT_NOT_REACHED();
    21512153            break;
    21522154        }
     
    22152217           
    22162218        default:
    2217             DFG_CRASH(m_jit.graph(), node, "Bad use kind");
     2219            RELEASE_ASSERT_NOT_REACHED();
    22182220            break;
    22192221        }
     
    23372339        case Array::SelectUsingPredictions:
    23382340        case Array::ForceExit:
    2339             DFG_CRASH(m_jit.graph(), node, "Bad array mode type");
     2341            RELEASE_ASSERT_NOT_REACHED();
     2342            terminateSpeculativeExecution(InadequateCoverage, JSValueRegs(), 0);
    23402343            break;
    23412344        case Array::Generic: {
     
    25382541        case Array::SelectUsingPredictions:
    25392542        case Array::ForceExit:
    2540             DFG_CRASH(m_jit.graph(), node, "Bad array mode type");
     2543            RELEASE_ASSERT_NOT_REACHED();
     2544            terminateSpeculativeExecution(InadequateCoverage, JSValueRegs(), 0);
     2545            alreadyHandled = true;
    25412546            break;
    25422547        case Array::Generic: {
    2543             DFG_ASSERT(m_jit.graph(), node, node->op() == PutByVal);
     2548            RELEASE_ASSERT(node->op() == PutByVal);
    25442549           
    25452550            JSValueOperand arg1(this, child1);
     
    31143119           
    31153120        default:
    3116             DFG_CRASH(m_jit.graph(), node, "Bad use kind");
     3121            RELEASE_ASSERT_NOT_REACHED();
    31173122            break;
    31183123        }
     
    31213126       
    31223127    case ToPrimitive: {
    3123         DFG_ASSERT(m_jit.graph(), node, node->child1().useKind() == UntypedUse);
     3128        RELEASE_ASSERT(node->child1().useKind() == UntypedUse);
    31243129        JSValueOperand op1(this, node->child1());
    31253130        GPRTemporary result(this, Reuse, op1);
     
    31883193        if (!globalObject->isHavingABadTime() && !hasAnyArrayStorage(node->indexingType())) {
    31893194            Structure* structure = globalObject->arrayStructureForIndexingTypeDuringAllocation(node->indexingType());
    3190             DFG_ASSERT(m_jit.graph(), node, structure->indexingType() == node->indexingType());
     3195            RELEASE_ASSERT(structure->indexingType() == node->indexingType());
    31913196            ASSERT(
    31923197                hasUndecided(structure->indexingType())
     
    34393444            emitAllocateJSArray(resultGPR, globalObject->arrayStructureForIndexingTypeDuringAllocation(indexingType), storageGPR, numElements);
    34403445           
    3441             DFG_ASSERT(m_jit.graph(), node, indexingType & IsArray);
     3446            RELEASE_ASSERT(indexingType & IsArray);
    34423447            JSValue* data = m_jit.codeBlock()->constantBuffer(node->startConstant());
    34433448            if (indexingType == ArrayWithDouble) {
     
    34933498        }
    34943499        default:
    3495             DFG_CRASH(m_jit.graph(), node, "Bad use kind");
     3500            RELEASE_ASSERT_NOT_REACHED();
    34963501            break;
    34973502        }
     
    37233728           
    37243729        default:
    3725             DFG_CRASH(m_jit.graph(), node, "Bad use kind");
     3730            RELEASE_ASSERT_NOT_REACHED();
    37263731            break;
    37273732        }
     
    37733778           
    37743779        default:
    3775             DFG_CRASH(m_jit.graph(), node, "Bad use kind");
     3780            RELEASE_ASSERT_NOT_REACHED();
    37763781            break;
    37773782        }
     
    38293834        }
    38303835       
     3836        noResult(node);
     3837        break;
     3838    }
     3839       
     3840    case PhantomPutStructure: {
     3841        ASSERT(isKnownCell(node->child1().node()));
     3842        m_jit.jitCode()->common.notifyCompilingStructureTransition(m_jit.graph().m_plan, m_jit.codeBlock(), node);
    38313843        noResult(node);
    38323844        break;
     
    42374249
    42384250    case CreateActivation: {
    4239         DFG_ASSERT(m_jit.graph(), node, !node->origin.semantic.inlineCallFrame);
     4251        RELEASE_ASSERT(!node->origin.semantic.inlineCallFrame);
    42404252       
    42414253        JSValueOperand value(this, node->child1());
     
    43104322
    43114323    case TearOffActivation: {
    4312         DFG_ASSERT(m_jit.graph(), node, !node->origin.semantic.inlineCallFrame);
     4324        RELEASE_ASSERT(!node->origin.semantic.inlineCallFrame);
    43134325
    43144326        JSValueOperand activationValue(this, node->child1());
     
    43824394        }
    43834395       
    4384         DFG_ASSERT(m_jit.graph(), node, !node->origin.semantic.inlineCallFrame);
     4396        RELEASE_ASSERT(!node->origin.semantic.inlineCallFrame);
    43854397        m_jit.load32(JITCompiler::payloadFor(JSStack::ArgumentCount), resultGPR);
    43864398        m_jit.sub32(TrustedImm32(1), resultGPR);
     
    44584470        JITCompiler::JumpList slowArgumentOutOfBounds;
    44594471        if (m_jit.symbolTableFor(node->origin.semantic)->slowArguments()) {
    4460             DFG_ASSERT(m_jit.graph(), node, !node->origin.semantic.inlineCallFrame);
     4472            RELEASE_ASSERT(!node->origin.semantic.inlineCallFrame);
    44614473            const SlowArgument* slowArguments = m_jit.graph().m_slowArguments.get();
    44624474           
     
    45254537        JITCompiler::JumpList slowArgumentOutOfBounds;
    45264538        if (m_jit.symbolTableFor(node->origin.semantic)->slowArguments()) {
    4527             DFG_ASSERT(m_jit.graph(), node, !node->origin.semantic.inlineCallFrame);
     4539            RELEASE_ASSERT(!node->origin.semantic.inlineCallFrame);
    45284540            const SlowArgument* slowArguments = m_jit.graph().m_slowArguments.get();
    45294541
     
    46604672
    46614673    case Unreachable:
    4662         DFG_CRASH(m_jit.graph(), node, "Unexpected Unreachable node");
     4674        RELEASE_ASSERT_NOT_REACHED();
    46634675        break;
    46644676
     
    47284740    case CheckTierUpAtReturn:
    47294741    case CheckTierUpAndOSREnter:
    4730         DFG_CRASH(m_jit.graph(), node, "Unexpected tier-up node");
     4742        RELEASE_ASSERT_NOT_REACHED();
    47314743        break;
    47324744#endif // ENABLE(FTL_JIT)
     
    47444756    case MultiPutByOffset:
    47454757    case FiatInt52:
    4746         DFG_CRASH(m_jit.graph(), node, "Unexpected FTL node");
     4758        RELEASE_ASSERT_NOT_REACHED();
    47474759        break;
    47484760    }
Note: See TracChangeset for help on using the changeset viewer.