Codegen: array access (part 1)
Summary:
Generate code for r-value expressions such as `$x[3]` or `$x[$ix+1]`. Variations in bytecode required for constant indices (integer and string), local variable indices, and general expression indices.
Also variation when expression is an argument to a function.
If array expression is a general expression (e.g. `(foo($x))[3]`) we don't quite get things right yet. Also, the assembler syntax we generate includes local names embedded in the instruction
(e.g. `EL:$a`) and this is not yet supported by the the HHVM assembler.
Reviewed By: hubyrod, oulgen
Differential Revision:
D4630807
fbshipit-source-id:
2919fc4e890cdaba2a497efa6e5ccfe36db59bb6