rascal 0.3.4

A parser and compiler for Flash ActionScript 2 files into SWFs
Documentation
---
source: crates/rascal/src/tests.rs
expression: result
input_file: samples/as2/function_in_loop_break_continue.as
---
initializer:
  actions:
    - ConstantPool:
        - i
        - loop i=
        - decide
        - continue
        - break
        - none
        - naughty
        - action
        - "  work i="
        - end
    - Push:
        - Constant: 0
        - Integer: 0
    - DefineLocal
    - Push:
        - Constant: 0
    - GetVariable
    - Push:
        - Integer: 5
    - Less2
    - Not
    - If: loc0000
    - Push:
        - Constant: 1
        - Constant: 0
    - GetVariable
    - Add2
    - Trace
    - Push:
        - Constant: 2
    - DefineFunction2:
        name: ""
        params:
          - name: v
            register: 1
        actions:
          actions:
            - Push:
                - Register: 1
                - Integer: 1
            - Equals2
            - Not
            - If: loc0003
            - Push:
                - Constant: 3
            - Return
            - Push:
                - Register: 1
                - Integer: 3
            - Equals2
            - Not
            - If: loc0004
            - Push:
                - Constant: 4
            - Return
            - Push:
                - Constant: 5
            - Return
          label_positions:
            loc0003: 6
            loc0004: 12
        register_count: 2
        preload_this: false
        suppress_this: true
        preload_arguments: false
        suppress_arguments: true
        preload_super: false
        suppress_super: true
        preload_root: false
        preload_parent: false
        preload_global: false
    - DefineLocal
    - Push:
        - Constant: 6
    - DefineFunction:
        name: ""
        params: []
        actions:
          actions: []
          label_positions: {}
    - DefineLocal
    - Push:
        - Integer: 0
        - Constant: 6
    - CallFunction
    - Pop
    - Push:
        - Constant: 7
        - Constant: 0
    - GetVariable
    - Push:
        - Integer: 1
        - Constant: 2
    - CallFunction
    - DefineLocal
    - Push:
        - Constant: 7
    - GetVariable
    - Push:
        - Constant: 3
    - Equals2
    - Not
    - If: loc0005
    - Jump: loc0001
    - Push:
        - Constant: 7
    - GetVariable
    - Push:
        - Constant: 4
    - Equals2
    - Not
    - If: loc0006
    - Jump: loc0000
    - Push:
        - Constant: 8
        - Constant: 0
    - GetVariable
    - Add2
    - Trace
    - Push:
        - Constant: 0
        - Constant: 0
    - GetVariable
    - Increment
    - SetVariable
    - Jump: loc0002
    - Push:
        - Constant: 9
    - Trace
  label_positions:
    loc0002: 3
    loc0005: 34
    loc0006: 41
    loc0001: 45
    loc0000: 50
extra_modules: []
compile_options:
  swf_version: 15
  optimizations:
    fold_constants: true
    promote_variables_to_registers: true
custom_pcodes: []