haikuwebkit/LayoutTests/js/dfg-use-function-as-variabl...

110 lines
2.7 KiB
Plaintext
Raw Permalink Normal View History

DFG assumes that NewFunction will never pass its input through https://bugs.webkit.org/show_bug.cgi?id=118798 Source/JavaScriptCore: Reviewed by Sam Weinig. Previously the DFG was assuming that NewFunction always returns a function. That's not the case. It may return whatever was passed to it, if it wasn't passed SpecEmpty. This fact needed to be wired through the compiler. * dfg/DFGAbstractState.cpp: (JSC::DFG::AbstractState::executeEffects): * dfg/DFGAbstractValue.h: (JSC::DFG::AbstractValue::makeTop): * dfg/DFGGraph.cpp: (JSC::DFG::Graph::dump): * dfg/DFGOperations.cpp: * dfg/DFGOperations.h: * dfg/DFGPredictionPropagationPhase.cpp: (JSC::DFG::PredictionPropagationPhase::propagate): * dfg/DFGSpeculativeJIT.h: (JSC::DFG::SpeculativeJIT::callOperation): * dfg/DFGSpeculativeJIT32_64.cpp: (JSC::DFG::SpeculativeJIT::compile): * dfg/DFGSpeculativeJIT64.cpp: (JSC::DFG::SpeculativeJIT::compile): LayoutTests: Reviewed by Sam Weinig. * fast/js/dfg-use-function-as-variable-expected.txt: Added. * fast/js/dfg-use-function-as-variable-merge-structure-expected.txt: Added. * fast/js/dfg-use-function-as-variable-merge-structure.html: Added. * fast/js/dfg-use-function-as-variable-not-constant-expected.txt: Added. * fast/js/dfg-use-function-as-variable-not-constant.html: Added. * fast/js/dfg-use-function-as-variable-with-closure-expected.txt: Added. * fast/js/dfg-use-function-as-variable-with-closure.html: Added. * fast/js/dfg-use-function-as-variable.html: Added. * fast/js/jsc-test-list: * fast/js/script-tests/dfg-use-function-as-variable-merge-structure.js: Added. (.x): (run_tests): * fast/js/script-tests/dfg-use-function-as-variable-not-constant.js: Added. (run_tests.x): (run_tests): * fast/js/script-tests/dfg-use-function-as-variable-with-closure.js: Added. (run_tests.x): (run_tests.y): (run_tests): * fast/js/script-tests/dfg-use-function-as-variable.js: Added. (run_tests.x): (run_tests): Canonical link: https://commits.webkit.org/136685@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@152813 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2013-07-17 23:27:31 +00:00
Tests what happens when you use a function as a variable, and that function is closed over.
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS run_tests(13) is 26
PASS successfullyParsed is true
TEST COMPLETE