FTL should support IsBlah
https://bugs.webkit.org/show_bug.cgi?id=130202
Source/JavaScriptCore:
Reviewed by Geoffrey Garen.
* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLIntrinsicRepository.h:
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileIsUndefined):
(JSC::FTL::LowerDFGToLLVM::compileIsBoolean):
(JSC::FTL::LowerDFGToLLVM::compileIsNumber):
(JSC::FTL::LowerDFGToLLVM::compileIsString):
(JSC::FTL::LowerDFGToLLVM::compileIsObject):
(JSC::FTL::LowerDFGToLLVM::compileIsFunction):
(JSC::FTL::LowerDFGToLLVM::compileStoreBarrier):
(JSC::FTL::LowerDFGToLLVM::compileStoreBarrierWithNullCheck):
(JSC::FTL::LowerDFGToLLVM::isNotCellOrMisc):
(JSC::FTL::LowerDFGToLLVM::isNumber):
(JSC::FTL::LowerDFGToLLVM::isNotNumber):
(JSC::FTL::LowerDFGToLLVM::isBoolean):
* ftl/FTLOSRExitCompiler.cpp:
* tests/stress/is-undefined-exit-on-masquerader.js: Added.
(bar):
(foo):
(test):
* tests/stress/is-undefined-jettison-on-masquerader.js: Added.
(foo):
(test):
* tests/stress/is-undefined-masquerader.js: Added.
(foo):
(test):
Tools:
Reviewed by Geoffrey Garen.
Running existing JSRegress tests with noInline gives us coverage for these
changes. Chances are, this will also give coverage for other interesting things
as well.
* Scripts/run-jsc-stress-tests:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@165571 268f45cc-cd09-0410-ab3c-d52691b4dbfc
10 files changed