Handle this typehints
[hiphop-php.git] / hphp / test / slow / skip-frame.php
blob68dc804d2203ffd9f796522405f6fbc0ce0b0320
1 <?hh
2 // Copyright 2004-present Facebook. All Rights Reserved.
4 function make_wrapper($action, $layers=3) {
5 if ($layers > 0) {
6 $c = make_wrapper($action, $layers-1);
7 return ['call_user_func_array', ['array_map'], [[$c[0], $c[1], $c[2]]]];
8 } else {
9 return ['call_user_func_array', ['assert'], [["($action) || true"]]];
13 function change_local($x = 123) {
14 $var = [$x, $x, $x];
15 $wrapper = make_wrapper('$var = 1234');
16 array_map($wrapper[0], $wrapper[1], $wrapper[2]);
17 var_dump($var + $var);
20 function add_local() {
21 $wrapper = make_wrapper('$var = "abcd"');
22 array_map($wrapper[0], $wrapper[1], $wrapper[2]);
23 var_dump(get_defined_vars()['var']);
26 function all_vars() {
27 $var1 = 123;
28 $var2 = 456;
29 $var3 = 789;
30 $wrapper = make_wrapper('var_dump(get_defined_vars()["var2"])');
31 array_map($wrapper[0], $wrapper[1], $wrapper[2]);
34 function compact_extract() {
35 $wrapper = make_wrapper('extract(["var1" => 123, "var2" => 456, "var3" => 789])');
36 array_map($wrapper[0], $wrapper[1], $wrapper[2]);
37 $wrapper = make_wrapper('var_dump(compact("var1", "var2", "var3"))');
38 array_map($wrapper[0], $wrapper[1], $wrapper[2]);
41 function change_local_method($x = 123) {
42 $var = [$x, $x, $x];
43 $v = Vector{'($var = 1234) || true'};
44 $v->map('assert');
45 var_dump($var + $var);
48 function all_vars_method() {
49 $var1 = 123;
50 $var2 = 456;
51 $var3 = 789;
52 $v = Vector{'(var_dump(get_defined_vars()["var2"])) || true'};
53 $v->map('assert');
56 function get_arg_impl($arg1, $arg2, $arg3) {
57 var_dump(array_map('func_get_arg', [0]));
59 function get_arg() { get_arg_impl(1, 2, 3); }
61 function run($c) {
62 $c();
63 $c();
66 run('change_local');
67 run('add_local');
68 run('all_vars');
69 run('compact_extract');
70 run('get_arg');
71 run('change_local_method');
72 run('all_vars_method');