Initial support for Closure::bind outside of repo mode
commit3e290683d8504c74570343aee66da45863db8adf
authorPaul Bissonnette <paulbiss@fb.com>
Tue, 16 Sep 2014 02:38:01 +0000 (15 19:38 -0700)
committerhhvm-bot <hhvm-bot@fb.com>
Tue, 16 Sep 2014 03:00:22 +0000 (15 20:00 -0700)
tree8dff67a877401d0f2b965e62e445a6c221345083
parent5d3a777352617949eed387c6fe311ac1a3122fdb
Initial support for Closure::bind outside of repo mode

Summary: Added support for Closure::bind and a runtime option to disable
mutating closure scopes. Closes #1203

Reviewed By: @ptarjan

Differential Revision: D1538668
54 files changed:
hphp/compiler/analysis/emitter.cpp
hphp/runtime/base/attr.h
hphp/runtime/base/runtime-option.h
hphp/runtime/ext/ext_closure.cpp
hphp/runtime/ext/ext_closure.h
hphp/runtime/ext/reflection/ext_reflection.cpp
hphp/runtime/vm/func-inl.h
hphp/runtime/vm/func.cpp
hphp/runtime/vm/func.h
hphp/runtime/vm/jit/hhbc-translator.cpp
hphp/runtime/vm/jit/type.cpp
hphp/system/idl/closure.idl.json
hphp/test/slow/closure/bind-private.php [new file with mode: 0644]
hphp/test/slow/closure/bind-private.php.expectf [new file with mode: 0644]
hphp/test/slow/closure/bind-private.php.norepo [new file with mode: 0644]
hphp/test/slow/closure/bind-stress.php [new file with mode: 0644]
hphp/test/slow/closure/bind-stress.php.expectf [new file with mode: 0644]
hphp/test/slow/closure/bind-stress.php.norepo [new file with mode: 0644]
hphp/test/slow/closure/bindscope.php [new file with mode: 0644]
hphp/test/slow/closure/bindscope.php.expect [new file with mode: 0644]
hphp/test/slow/closure/bindscope.php.norepo [new file with mode: 0644]
hphp/test/slow/closure/closure-private.php.norepo [new file with mode: 0644]
hphp/test/slow/reflection/get_closure_scope_class.php.expect
hphp/test/zend/good/Zend/tests/closure_036.php [moved from hphp/test/zend/bad/Zend/tests/closure_036.php with 100% similarity]
hphp/test/zend/good/Zend/tests/closure_036.php.expectf [moved from hphp/test/zend/bad/Zend/tests/closure_036.php.expectf with 100% similarity]
hphp/test/zend/good/Zend/tests/closure_036.php.norepo [new file with mode: 0644]
hphp/test/zend/good/Zend/tests/closure_038.php [moved from hphp/test/zend/bad/Zend/tests/closure_038.php with 100% similarity]
hphp/test/zend/good/Zend/tests/closure_038.php.expectf [moved from hphp/test/zend/bad/Zend/tests/closure_038.php.expectf with 100% similarity]
hphp/test/zend/good/Zend/tests/closure_038.php.norepo [new file with mode: 0644]
hphp/test/zend/good/Zend/tests/closure_039.php [moved from hphp/test/zend/bad/Zend/tests/closure_039.php with 100% similarity]
hphp/test/zend/good/Zend/tests/closure_039.php.expectf [moved from hphp/test/zend/bad/Zend/tests/closure_039.php.expectf with 100% similarity]
hphp/test/zend/good/Zend/tests/closure_039.php.norepo [new file with mode: 0644]
hphp/test/zend/good/Zend/tests/closure_040.php [moved from hphp/test/zend/bad/Zend/tests/closure_040.php with 100% similarity]
hphp/test/zend/good/Zend/tests/closure_040.php.expectf [moved from hphp/test/zend/bad/Zend/tests/closure_040.php.expectf with 69% similarity]
hphp/test/zend/good/Zend/tests/closure_040.php.norepo [new file with mode: 0644]
hphp/test/zend/good/Zend/tests/closure_041.php [moved from hphp/test/zend/bad/Zend/tests/closure_041.php with 100% similarity]
hphp/test/zend/good/Zend/tests/closure_041.php.expectf [moved from hphp/test/zend/bad/Zend/tests/closure_041.php.expectf with 100% similarity]
hphp/test/zend/good/Zend/tests/closure_041.php.norepo [new file with mode: 0644]
hphp/test/zend/good/Zend/tests/closure_042.php [moved from hphp/test/zend/bad/Zend/tests/closure_042.php with 100% similarity]
hphp/test/zend/good/Zend/tests/closure_042.php.expectf [moved from hphp/test/zend/bad/Zend/tests/closure_042.php.expectf with 51% similarity]
hphp/test/zend/good/Zend/tests/closure_042.php.norepo [new file with mode: 0644]
hphp/test/zend/good/Zend/tests/closure_042.php.skipif [moved from hphp/test/zend/bad/Zend/tests/closure_042.php.skipif with 100% similarity]
hphp/test/zend/good/Zend/tests/closure_043.php [moved from hphp/test/zend/bad/Zend/tests/closure_043.php with 100% similarity]
hphp/test/zend/good/Zend/tests/closure_043.php.expectf [moved from hphp/test/zend/bad/Zend/tests/closure_043.php.expectf with 100% similarity]
hphp/test/zend/good/Zend/tests/closure_043.php.norepo [new file with mode: 0644]
hphp/test/zend/good/Zend/tests/closure_044.php [moved from hphp/test/zend/bad/Zend/tests/closure_044.php with 100% similarity]
hphp/test/zend/good/Zend/tests/closure_044.php.expectf [moved from hphp/test/zend/bad/Zend/tests/closure_044.php.expectf with 100% similarity]
hphp/test/zend/good/Zend/tests/closure_044.php.norepo [new file with mode: 0644]
hphp/test/zend/good/Zend/tests/closure_045.php [moved from hphp/test/zend/bad/Zend/tests/closure_045.php with 100% similarity]
hphp/test/zend/good/Zend/tests/closure_045.php.expectf [moved from hphp/test/zend/bad/Zend/tests/closure_045.php.expectf with 100% similarity]
hphp/test/zend/good/Zend/tests/closure_045.php.norepo [new file with mode: 0644]
hphp/test/zend/good/Zend/tests/closure_046.php [moved from hphp/test/zend/bad/Zend/tests/closure_046.php with 100% similarity]
hphp/test/zend/good/Zend/tests/closure_046.php.expectf [moved from hphp/test/zend/bad/Zend/tests/closure_046.php.expectf with 100% similarity]
hphp/test/zend/good/Zend/tests/closure_046.php.norepo [new file with mode: 0644]