Class: Furnace::AVM2::ABC::ScriptInfo
Instance Attribute Summary
#root
Instance Method Summary
collapse
#codes_to_ast
#initializer_body
Methods inherited from Record
abc_array_of, flag, pool_array, pool_array_of, pool_ref, subset, xlat_direct, xlat_field, xlat_inverse
#byte_length, codegen, codegen_each, inherited, #inspect, method_missing, register, #to_hash, trace, trace_scope, trace_value
Instance Method Details
#any_code? ⇒ Boolean
27
28
29
|
# File 'lib/furnace-avm2/abc/metadata/script_info.rb', line 27
def any_code?
non_init_traits.any?
end
|
#collect_ns ⇒ Object
10
11
12
13
14
15
16
17
|
# File 'lib/furnace-avm2/abc/metadata/script_info.rb', line 10
def collect_ns
options = { ns: Set.new([ non_init_traits[0].name.ns ]), no_ns: Set.new, names: {} }
initializer.collect_ns(options) if initializer
traits.each { |trait| trait.collect_ns(options) }
options
end
|
#decompile(options = {}) ⇒ Object
19
20
21
22
23
24
25
|
# File 'lib/furnace-avm2/abc/metadata/script_info.rb', line 19
def decompile(options={})
Furnace::AVM2::Tokens::PackageToken.new(self,
options.merge(collect_ns).merge(
package_type: :script,
package_name: non_init_traits[0].name)
)
end
|
#non_init_traits ⇒ Object
31
32
33
|
# File 'lib/furnace-avm2/abc/metadata/script_info.rb', line 31
def non_init_traits
traits.reject { |trait| trait.kind == :Class }
end
|