global statement removal: hphp/test [7/x]
[hiphop-php.git] / hphp / test / quick / asm_array.hhas
blobb31b391c85bef988cbec0397818c96cffedcf38c
2 # Test arrays for hhbc asm.
5 .main {
6   String "main"
7   FPushFunc 0
8   FCall <> 0 1 "" - "" "" # allow the JIT why not
9   PopC
11   Int 1
12   RetC
15 .adata my_array = """a:2:{s:3:"foo";s:3:"bar";s:3:"baz";s:4:"blah";}""";
17 .class ClassWithArray {
18   .property [static public] arr =
19             """a:4:{i:0;i:1;i:1;i:2;i:2;i:3;i:3;i:4;}""";
22 .function ArrayMember() {
23   .numclsrefslots 1;
24   FPushFuncD 1 "var_dump"
25     String "arr"
26     String "ClassWithArray"
27     ClsRefGetC 0
28     CGetS 0
29   FCall <> 1 1 "" - "" ""
30   PopC
32   String "ClassWithArray"
33   SetL $x
34   PopC
36   FPushFuncD 1 "var_dump"
37     String "arr"
38     Int 2
39     CGetL $x
40     ClsRefGetC 0
41     BaseSC 1 0 Warn
42     QueryM 2 CGet EC:0
43   FCall <> 1 1 "" - "" ""
44   PopC
46   True
47   RetC
50 .function main() {
51   FPushFuncD 0 "ArrayMember"
52   FCall <> 0 1 "" - "" ""
53   PopC
55   Array @my_array
56   SetL $arr
57   PopC
59   BaseL $arr Warn
60   QueryM 0 CGet ET:"foo"
61   String "\n"
62   Concat
63   Print
64   PopC
66   String "one"
67   BaseL $arr Define
68   SetM 0 EI:1
69   PopC
71   BaseL $arr Warn
72   QueryM 0 CGet EI:1
73   String "\n"
74   Concat
75   Print
76   PopC
78   String "baz"
79   SetL $key
80   PopC
81   BaseL $arr Unset
82   UnsetM 0 EL:$key
84   # Test that it's unset
85   CGetL $arr
86   BaseC 0 Warn
87   QueryM 1 Isset EL:$key
88   JmpZ unset_label
90   String "This should be impossible...\n"
91   Print
92   PopC
94   Null
95   RetC
97 unset_label:  String "win\n"
98               Print
99               PopC
101               FPushFuncD 1 "var_dump"
102               CGetL $arr
103               FCall <> 1 1 "" - "" ""
104               PopC
106               FPushFuncD 1 "var_dump"
107               Int 1
108               String "b"
109               NewPackedArray 2
110               FCall <> 1 1 "" - "" ""
111               PopC
113               Null
114               RetC