furnace-avm2 0.0.9 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (126) hide show
  1. data/Gemfile +1 -1
  2. data/Gemfile.lock +4 -3
  3. data/LICENSE +20 -0
  4. data/bin/furnace-avm2 +36 -6
  5. data/bin/furnace-avm2-decompiler +141 -0
  6. data/furnace-avm2.gemspec +2 -2
  7. data/lib/furnace-avm2.rb +1 -0
  8. data/lib/furnace-avm2/abc.rb +24 -7
  9. data/lib/furnace-avm2/abc/metadata/{option_detail.rb → default_value.rb} +5 -1
  10. data/lib/furnace-avm2/abc/metadata/initializer_body.rb +8 -0
  11. data/lib/furnace-avm2/abc/metadata/instance_info.rb +19 -4
  12. data/lib/furnace-avm2/abc/metadata/klass_info.rb +1 -4
  13. data/lib/furnace-avm2/abc/metadata/method_body_info.rb +27 -10
  14. data/lib/furnace-avm2/abc/metadata/method_info.rb +20 -13
  15. data/lib/furnace-avm2/abc/metadata/multiname_info.rb +6 -0
  16. data/lib/furnace-avm2/abc/metadata/multiname_kind_genericname.rb +8 -5
  17. data/lib/furnace-avm2/abc/metadata/multiname_kind_multiname.rb +4 -0
  18. data/lib/furnace-avm2/abc/metadata/multiname_kind_qname.rb +5 -1
  19. data/lib/furnace-avm2/abc/metadata/record_with_value.rb +90 -0
  20. data/lib/furnace-avm2/abc/metadata/script_info.rb +25 -1
  21. data/lib/furnace-avm2/abc/metadata/trait_class.rb +7 -3
  22. data/lib/furnace-avm2/abc/metadata/trait_info.rb +8 -4
  23. data/lib/furnace-avm2/abc/metadata/trait_method.rb +4 -0
  24. data/lib/furnace-avm2/abc/metadata/trait_slot.rb +5 -51
  25. data/lib/furnace-avm2/abc/opcodes/bitwise/as3_lshift.rb +1 -1
  26. data/lib/furnace-avm2/abc/opcodes/bitwise/as3_rshift.rb +1 -1
  27. data/lib/furnace-avm2/abc/opcodes/bitwise/as3_urshift.rb +1 -1
  28. data/lib/furnace-avm2/abc/opcodes/debug/as3_debug.rb +15 -0
  29. data/lib/furnace-avm2/abc/opcodes/debug/as3_debugfile.rb +12 -0
  30. data/lib/furnace-avm2/abc/opcodes/debug/as3_debugline.rb +12 -0
  31. data/lib/furnace-avm2/abc/opcodes/function_invocation/as3_callproplex.rb +21 -0
  32. data/lib/furnace-avm2/abc/opcodes/push_literal/as3_pushbyte.rb +1 -1
  33. data/lib/furnace-avm2/abc/opcodes/push_literal/as3_pushshort.rb +1 -1
  34. data/lib/furnace-avm2/binary/record.rb +21 -1
  35. data/lib/furnace-avm2/source/declaration_tokens/argument_declaration_token.rb +4 -0
  36. data/lib/furnace-avm2/source/declaration_tokens/arguments_token.rb +15 -0
  37. data/lib/furnace-avm2/source/declaration_tokens/callee_token.rb +72 -0
  38. data/lib/furnace-avm2/source/declaration_tokens/class_implementations_token.rb +21 -0
  39. data/lib/furnace-avm2/source/declaration_tokens/class_inheritance_token.rb +17 -0
  40. data/lib/furnace-avm2/source/declaration_tokens/class_name_token.rb +21 -0
  41. data/lib/furnace-avm2/source/declaration_tokens/class_specifiers_token.rb +12 -0
  42. data/lib/furnace-avm2/source/declaration_tokens/class_token.rb +21 -0
  43. data/lib/furnace-avm2/source/declaration_tokens/comment_token.rb +22 -0
  44. data/lib/furnace-avm2/source/declaration_tokens/constructor_specifiers_token.rb +12 -0
  45. data/lib/furnace-avm2/source/declaration_tokens/constructor_token.rb +15 -0
  46. data/lib/furnace-avm2/source/declaration_tokens/function_name_token.rb +14 -0
  47. data/lib/furnace-avm2/source/declaration_tokens/import_token.rb +17 -0
  48. data/lib/furnace-avm2/source/declaration_tokens/initialization_token.rb +7 -0
  49. data/lib/furnace-avm2/source/declaration_tokens/method_specifiers_token.rb +13 -0
  50. data/lib/furnace-avm2/source/declaration_tokens/method_token.rb +15 -0
  51. data/lib/furnace-avm2/source/declaration_tokens/multiname_token.rb +41 -0
  52. data/lib/furnace-avm2/source/declaration_tokens/namespace_name_token.rb +16 -0
  53. data/lib/furnace-avm2/source/declaration_tokens/package_name_token.rb +17 -0
  54. data/lib/furnace-avm2/source/declaration_tokens/package_token.rb +29 -0
  55. data/lib/furnace-avm2/source/declaration_tokens/rest_argument_token.rb +12 -0
  56. data/lib/furnace-avm2/source/declaration_tokens/scope_token.rb +23 -0
  57. data/lib/furnace-avm2/source/declaration_tokens/script_token.rb +14 -0
  58. data/lib/furnace-avm2/source/declaration_tokens/slot_name_token.rb +17 -0
  59. data/lib/furnace-avm2/source/declaration_tokens/slot_token.rb +23 -0
  60. data/lib/furnace-avm2/source/declaration_tokens/specifiers_token.rb +32 -0
  61. data/lib/furnace-avm2/source/declaration_tokens/token_with_traits.rb +51 -0
  62. data/lib/furnace-avm2/source/declaration_tokens/type_token.rb +7 -0
  63. data/lib/furnace-avm2/source/decompiler.rb +669 -0
  64. data/lib/furnace-avm2/source/implementation_tokens/access_token.rb +9 -0
  65. data/lib/furnace-avm2/source/implementation_tokens/array_token.rb +17 -0
  66. data/lib/furnace-avm2/source/implementation_tokens/as_token.rb +9 -0
  67. data/lib/furnace-avm2/source/implementation_tokens/assignment_token.rb +9 -0
  68. data/lib/furnace-avm2/source/implementation_tokens/binary_operator_token.rb +14 -0
  69. data/lib/furnace-avm2/source/implementation_tokens/break_token.rb +9 -0
  70. data/lib/furnace-avm2/source/implementation_tokens/call_token.rb +5 -0
  71. data/lib/furnace-avm2/source/implementation_tokens/continue_token.rb +9 -0
  72. data/lib/furnace-avm2/source/implementation_tokens/control_flow_token.rb +26 -0
  73. data/lib/furnace-avm2/source/implementation_tokens/control_transfer_token.rb +20 -0
  74. data/lib/furnace-avm2/source/implementation_tokens/delete_token.rb +9 -0
  75. data/lib/furnace-avm2/source/implementation_tokens/do_token.rb +9 -0
  76. data/lib/furnace-avm2/source/implementation_tokens/else_if_token.rb +9 -0
  77. data/lib/furnace-avm2/source/implementation_tokens/else_token.rb +22 -0
  78. data/lib/furnace-avm2/source/implementation_tokens/for_each_token.rb +9 -0
  79. data/lib/furnace-avm2/source/implementation_tokens/for_token.rb +9 -0
  80. data/lib/furnace-avm2/source/implementation_tokens/generic_specializers_token.rb +17 -0
  81. data/lib/furnace-avm2/source/implementation_tokens/generic_type_token.rb +9 -0
  82. data/lib/furnace-avm2/source/implementation_tokens/if_token.rb +9 -0
  83. data/lib/furnace-avm2/source/implementation_tokens/immediate_token.rb +14 -0
  84. data/lib/furnace-avm2/source/implementation_tokens/immediate_typename_token.rb +14 -0
  85. data/lib/furnace-avm2/source/implementation_tokens/in_token.rb +9 -0
  86. data/lib/furnace-avm2/source/implementation_tokens/index_token.rb +9 -0
  87. data/lib/furnace-avm2/source/implementation_tokens/is_complex.rb +7 -0
  88. data/lib/furnace-avm2/source/implementation_tokens/is_simple.rb +7 -0
  89. data/lib/furnace-avm2/source/implementation_tokens/is_token.rb +9 -0
  90. data/lib/furnace-avm2/source/implementation_tokens/label_declaration_token.rb +12 -0
  91. data/lib/furnace-avm2/source/implementation_tokens/label_token.rb +12 -0
  92. data/lib/furnace-avm2/source/implementation_tokens/local_variable_token.rb +7 -0
  93. data/lib/furnace-avm2/source/implementation_tokens/new_token.rb +9 -0
  94. data/lib/furnace-avm2/source/implementation_tokens/object_pair_token.rb +9 -0
  95. data/lib/furnace-avm2/source/implementation_tokens/object_token.rb +17 -0
  96. data/lib/furnace-avm2/source/implementation_tokens/parentheses_token.rb +11 -0
  97. data/lib/furnace-avm2/source/implementation_tokens/property_name_token.rb +14 -0
  98. data/lib/furnace-avm2/source/implementation_tokens/return_token.rb +16 -0
  99. data/lib/furnace-avm2/source/implementation_tokens/rtname_token.rb +9 -0
  100. data/lib/furnace-avm2/source/implementation_tokens/statement_token.rb +8 -0
  101. data/lib/furnace-avm2/source/implementation_tokens/super_token.rb +9 -0
  102. data/lib/furnace-avm2/source/implementation_tokens/switch_token.rb +9 -0
  103. data/lib/furnace-avm2/source/implementation_tokens/ternary_operator_token.rb +13 -0
  104. data/lib/furnace-avm2/source/implementation_tokens/throw_token.rb +12 -0
  105. data/lib/furnace-avm2/source/implementation_tokens/typeof_token.rb +13 -0
  106. data/lib/furnace-avm2/source/implementation_tokens/unary_operator_token.rb +14 -0
  107. data/lib/furnace-avm2/source/implementation_tokens/unary_post_operator_token.rb +14 -0
  108. data/lib/furnace-avm2/source/implementation_tokens/variable_name_token.rb +14 -0
  109. data/lib/furnace-avm2/source/implementation_tokens/while_token.rb +9 -0
  110. data/lib/furnace-avm2/transform.rb +5 -1
  111. data/lib/furnace-avm2/transform/ast_build.rb +22 -7
  112. data/lib/furnace-avm2/transform/ast_normalize.rb +61 -20
  113. data/lib/furnace-avm2/transform/cfg_build.rb +86 -0
  114. data/lib/furnace-avm2/transform/cfg_reduce.rb +249 -0
  115. data/lib/furnace-avm2/transform/nf_normalize.rb +130 -0
  116. data/lib/furnace-avm2/version.rb +4 -2
  117. data/test/basic.as +239 -0
  118. metadata +110 -38
  119. data/lib/furnace-avm2/abc/metadata/option_info.rb +0 -5
  120. data/test/exception.as +0 -29
  121. data/test/literal.as +0 -5
  122. data/test/logic.as +0 -23
  123. data/test/loops.as +0 -30
  124. data/test/number.as +0 -14
  125. data/test/switch.as +0 -38
  126. data/test/ternary.as +0 -22
metadata CHANGED
@@ -1,61 +1,65 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: furnace-avm2
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
5
- prerelease:
4
+ prerelease:
5
+ version: 0.9.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - Peter Zotov
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-02-17 00:00:00.000000000 Z
12
+ date: 2012-04-11 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: furnace
16
- requirement: &74548650 !ruby/object:Gem::Requirement
17
- none: false
16
+ version_requirements: &2056 !ruby/object:Gem::Requirement
18
17
  requirements:
19
18
  - - ! '>='
20
19
  - !ruby/object:Gem::Version
21
- version: 0.0.5
22
- type: :runtime
20
+ version: 0.1.0
21
+ none: false
22
+ requirement: *2056
23
23
  prerelease: false
24
- version_requirements: *74548650
24
+ type: :runtime
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: trollop
27
- requirement: &74547750 !ruby/object:Gem::Requirement
28
- none: false
27
+ version_requirements: &2074 !ruby/object:Gem::Requirement
29
28
  requirements:
30
29
  - - ! '>='
31
30
  - !ruby/object:Gem::Version
32
31
  version: '0'
33
- type: :runtime
32
+ none: false
33
+ requirement: *2074
34
34
  prerelease: false
35
- version_requirements: *74547750
36
- description: furnace-avm2 allows one to load, modify and write back Flash ActionScript3
37
- bytecode. It can also decompile it.
35
+ type: :runtime
36
+ description: furnace-avm2 allows one to load, modify and write back Flash ActionScript3 bytecode. It can also decompile it.
38
37
  email:
39
38
  - whitequark@whitequark.org
40
39
  executables:
41
40
  - furnace-avm2
42
41
  - furnace-avm2-benchmark
42
+ - furnace-avm2-decompiler
43
43
  extensions: []
44
44
  extra_rdoc_files: []
45
45
  files:
46
46
  - .gitignore
47
47
  - Gemfile
48
48
  - Gemfile.lock
49
+ - LICENSE
49
50
  - Rakefile
50
51
  - abcdump.abc
51
52
  - bin/furnace-avm2
52
53
  - bin/furnace-avm2-benchmark
54
+ - bin/furnace-avm2-decompiler
53
55
  - furnace-avm2.gemspec
54
56
  - lib/furnace-avm2.rb
55
57
  - lib/furnace-avm2/abc.rb
56
58
  - lib/furnace-avm2/abc/metadata/const_pool_info.rb
59
+ - lib/furnace-avm2/abc/metadata/default_value.rb
57
60
  - lib/furnace-avm2/abc/metadata/exception_info.rb
58
61
  - lib/furnace-avm2/abc/metadata/file.rb
62
+ - lib/furnace-avm2/abc/metadata/initializer_body.rb
59
63
  - lib/furnace-avm2/abc/metadata/instance_info.rb
60
64
  - lib/furnace-avm2/abc/metadata/klass_info.rb
61
65
  - lib/furnace-avm2/abc/metadata/metadata_info.rb
@@ -70,9 +74,8 @@ files:
70
74
  - lib/furnace-avm2/abc/metadata/multiname_kind_rtqnamel.rb
71
75
  - lib/furnace-avm2/abc/metadata/namespace_info.rb
72
76
  - lib/furnace-avm2/abc/metadata/ns_set_info.rb
73
- - lib/furnace-avm2/abc/metadata/option_detail.rb
74
- - lib/furnace-avm2/abc/metadata/option_info.rb
75
77
  - lib/furnace-avm2/abc/metadata/record_with_traits.rb
78
+ - lib/furnace-avm2/abc/metadata/record_with_value.rb
76
79
  - lib/furnace-avm2/abc/metadata/script_info.rb
77
80
  - lib/furnace-avm2/abc/metadata/trait_class.rb
78
81
  - lib/furnace-avm2/abc/metadata/trait_function.rb
@@ -131,10 +134,14 @@ files:
131
134
  - lib/furnace-avm2/abc/opcodes/control_transfer/as3_jump.rb
132
135
  - lib/furnace-avm2/abc/opcodes/control_transfer/as3_lookupswitch.rb
133
136
  - lib/furnace-avm2/abc/opcodes/control_transfer_opcode.rb
137
+ - lib/furnace-avm2/abc/opcodes/debug/as3_debug.rb
138
+ - lib/furnace-avm2/abc/opcodes/debug/as3_debugfile.rb
139
+ - lib/furnace-avm2/abc/opcodes/debug/as3_debugline.rb
134
140
  - lib/furnace-avm2/abc/opcodes/exception/as3_newcatch.rb
135
141
  - lib/furnace-avm2/abc/opcodes/exception_opcode.rb
136
142
  - lib/furnace-avm2/abc/opcodes/function_invocation/as3_call.rb
137
143
  - lib/furnace-avm2/abc/opcodes/function_invocation/as3_callproperty.rb
144
+ - lib/furnace-avm2/abc/opcodes/function_invocation/as3_callproplex.rb
138
145
  - lib/furnace-avm2/abc/opcodes/function_invocation/as3_callpropvoid.rb
139
146
  - lib/furnace-avm2/abc/opcodes/function_invocation/as3_callsuper.rb
140
147
  - lib/furnace-avm2/abc/opcodes/function_invocation/as3_callsupervoid.rb
@@ -226,47 +233,112 @@ files:
226
233
  - lib/furnace-avm2/abc/primitives/record.rb
227
234
  - lib/furnace-avm2/binary/choice_definition.rb
228
235
  - lib/furnace-avm2/binary/record.rb
236
+ - lib/furnace-avm2/source/declaration_tokens/argument_declaration_token.rb
237
+ - lib/furnace-avm2/source/declaration_tokens/arguments_token.rb
238
+ - lib/furnace-avm2/source/declaration_tokens/callee_token.rb
239
+ - lib/furnace-avm2/source/declaration_tokens/class_implementations_token.rb
240
+ - lib/furnace-avm2/source/declaration_tokens/class_inheritance_token.rb
241
+ - lib/furnace-avm2/source/declaration_tokens/class_name_token.rb
242
+ - lib/furnace-avm2/source/declaration_tokens/class_specifiers_token.rb
243
+ - lib/furnace-avm2/source/declaration_tokens/class_token.rb
244
+ - lib/furnace-avm2/source/declaration_tokens/comment_token.rb
245
+ - lib/furnace-avm2/source/declaration_tokens/constructor_specifiers_token.rb
246
+ - lib/furnace-avm2/source/declaration_tokens/constructor_token.rb
247
+ - lib/furnace-avm2/source/declaration_tokens/function_name_token.rb
248
+ - lib/furnace-avm2/source/declaration_tokens/import_token.rb
249
+ - lib/furnace-avm2/source/declaration_tokens/initialization_token.rb
250
+ - lib/furnace-avm2/source/declaration_tokens/method_specifiers_token.rb
251
+ - lib/furnace-avm2/source/declaration_tokens/method_token.rb
252
+ - lib/furnace-avm2/source/declaration_tokens/multiname_token.rb
253
+ - lib/furnace-avm2/source/declaration_tokens/namespace_name_token.rb
254
+ - lib/furnace-avm2/source/declaration_tokens/package_name_token.rb
255
+ - lib/furnace-avm2/source/declaration_tokens/package_token.rb
256
+ - lib/furnace-avm2/source/declaration_tokens/rest_argument_token.rb
257
+ - lib/furnace-avm2/source/declaration_tokens/scope_token.rb
258
+ - lib/furnace-avm2/source/declaration_tokens/script_token.rb
259
+ - lib/furnace-avm2/source/declaration_tokens/slot_name_token.rb
260
+ - lib/furnace-avm2/source/declaration_tokens/slot_token.rb
261
+ - lib/furnace-avm2/source/declaration_tokens/specifiers_token.rb
262
+ - lib/furnace-avm2/source/declaration_tokens/token_with_traits.rb
263
+ - lib/furnace-avm2/source/declaration_tokens/type_token.rb
264
+ - lib/furnace-avm2/source/decompiler.rb
265
+ - lib/furnace-avm2/source/implementation_tokens/access_token.rb
266
+ - lib/furnace-avm2/source/implementation_tokens/array_token.rb
267
+ - lib/furnace-avm2/source/implementation_tokens/as_token.rb
268
+ - lib/furnace-avm2/source/implementation_tokens/assignment_token.rb
269
+ - lib/furnace-avm2/source/implementation_tokens/binary_operator_token.rb
270
+ - lib/furnace-avm2/source/implementation_tokens/break_token.rb
271
+ - lib/furnace-avm2/source/implementation_tokens/call_token.rb
272
+ - lib/furnace-avm2/source/implementation_tokens/continue_token.rb
273
+ - lib/furnace-avm2/source/implementation_tokens/control_flow_token.rb
274
+ - lib/furnace-avm2/source/implementation_tokens/control_transfer_token.rb
275
+ - lib/furnace-avm2/source/implementation_tokens/delete_token.rb
276
+ - lib/furnace-avm2/source/implementation_tokens/do_token.rb
277
+ - lib/furnace-avm2/source/implementation_tokens/else_if_token.rb
278
+ - lib/furnace-avm2/source/implementation_tokens/else_token.rb
279
+ - lib/furnace-avm2/source/implementation_tokens/for_each_token.rb
280
+ - lib/furnace-avm2/source/implementation_tokens/for_token.rb
281
+ - lib/furnace-avm2/source/implementation_tokens/generic_specializers_token.rb
282
+ - lib/furnace-avm2/source/implementation_tokens/generic_type_token.rb
283
+ - lib/furnace-avm2/source/implementation_tokens/if_token.rb
284
+ - lib/furnace-avm2/source/implementation_tokens/immediate_token.rb
285
+ - lib/furnace-avm2/source/implementation_tokens/immediate_typename_token.rb
286
+ - lib/furnace-avm2/source/implementation_tokens/in_token.rb
287
+ - lib/furnace-avm2/source/implementation_tokens/index_token.rb
288
+ - lib/furnace-avm2/source/implementation_tokens/is_complex.rb
289
+ - lib/furnace-avm2/source/implementation_tokens/is_simple.rb
290
+ - lib/furnace-avm2/source/implementation_tokens/is_token.rb
291
+ - lib/furnace-avm2/source/implementation_tokens/label_declaration_token.rb
292
+ - lib/furnace-avm2/source/implementation_tokens/label_token.rb
293
+ - lib/furnace-avm2/source/implementation_tokens/local_variable_token.rb
294
+ - lib/furnace-avm2/source/implementation_tokens/new_token.rb
295
+ - lib/furnace-avm2/source/implementation_tokens/object_pair_token.rb
296
+ - lib/furnace-avm2/source/implementation_tokens/object_token.rb
297
+ - lib/furnace-avm2/source/implementation_tokens/parentheses_token.rb
298
+ - lib/furnace-avm2/source/implementation_tokens/property_name_token.rb
299
+ - lib/furnace-avm2/source/implementation_tokens/return_token.rb
300
+ - lib/furnace-avm2/source/implementation_tokens/rtname_token.rb
301
+ - lib/furnace-avm2/source/implementation_tokens/statement_token.rb
302
+ - lib/furnace-avm2/source/implementation_tokens/super_token.rb
303
+ - lib/furnace-avm2/source/implementation_tokens/switch_token.rb
304
+ - lib/furnace-avm2/source/implementation_tokens/ternary_operator_token.rb
305
+ - lib/furnace-avm2/source/implementation_tokens/throw_token.rb
306
+ - lib/furnace-avm2/source/implementation_tokens/typeof_token.rb
307
+ - lib/furnace-avm2/source/implementation_tokens/unary_operator_token.rb
308
+ - lib/furnace-avm2/source/implementation_tokens/unary_post_operator_token.rb
309
+ - lib/furnace-avm2/source/implementation_tokens/variable_name_token.rb
310
+ - lib/furnace-avm2/source/implementation_tokens/while_token.rb
229
311
  - lib/furnace-avm2/transform.rb
230
312
  - lib/furnace-avm2/transform/ast_build.rb
231
313
  - lib/furnace-avm2/transform/ast_normalize.rb
314
+ - lib/furnace-avm2/transform/cfg_build.rb
315
+ - lib/furnace-avm2/transform/cfg_reduce.rb
316
+ - lib/furnace-avm2/transform/nf_normalize.rb
232
317
  - lib/furnace-avm2/version.rb
233
- - test/exception.abc
234
- - test/exception.as
235
- - test/literal.abc
236
- - test/literal.as
237
- - test/logic.abc
238
- - test/logic.as
239
- - test/loops.abc
240
- - test/loops.as
241
- - test/number.abc
242
- - test/number.as
243
- - test/switch.abc
244
- - test/switch.as
245
- - test/ternary.abc
246
- - test/ternary.as
318
+ - test/basic.as
247
319
  homepage: http://github.com/whitequark/furnace-avm2
248
320
  licenses: []
249
- post_install_message:
321
+ post_install_message:
250
322
  rdoc_options: []
251
323
  require_paths:
252
324
  - lib
253
325
  required_ruby_version: !ruby/object:Gem::Requirement
254
- none: false
255
326
  requirements:
256
327
  - - ! '>='
257
328
  - !ruby/object:Gem::Version
258
329
  version: '0'
259
- required_rubygems_version: !ruby/object:Gem::Requirement
260
330
  none: false
331
+ required_rubygems_version: !ruby/object:Gem::Requirement
261
332
  requirements:
262
333
  - - ! '>='
263
334
  - !ruby/object:Gem::Version
264
335
  version: '0'
336
+ none: false
265
337
  requirements: []
266
- rubyforge_project:
267
- rubygems_version: 1.8.10
268
- signing_key:
338
+ rubyforge_project:
339
+ rubygems_version: 1.8.15
340
+ signing_key:
269
341
  specification_version: 3
270
342
  summary: AVM2 analysis framework based on Furnace
271
343
  test_files: []
272
- has_rdoc:
344
+ ...
@@ -1,5 +0,0 @@
1
- module Furnace::AVM2::ABC
2
- class OptionInfo < Record
3
- abc_array_of :option, :nested, :class => OptionDetail
4
- end
5
- end
@@ -1,29 +0,0 @@
1
- package test {
2
- function c() {
3
- try {
4
- hoge();
5
- } finally {
6
- piyo();
7
- }
8
- }
9
- function b() {
10
- try {
11
- hoge();
12
- throw 1;
13
- fuga();
14
- } catch(e: SecurityError) {
15
- piyo(e);
16
- }
17
- }
18
- function a() {
19
- try {
20
- hoge();
21
- throw 1;
22
- fuga();
23
- } catch(e: SecurityError) {
24
- piyo(e);
25
- } catch(e: Error) {
26
- throw e;
27
- }
28
- }
29
- }
@@ -1,5 +0,0 @@
1
- package test {
2
- function lit() {
3
- call(1, 1, 200, 200);
4
- }
5
- }
@@ -1,23 +0,0 @@
1
- package test {
2
- function P_a_or_b_p_and_P_c_and_d_p_or_e(a: Boolean, b:Boolean, c:Boolean, d:Boolean, e:Boolean) : Boolean {
3
- var v:Boolean = (a || b) && (c && d) || e;
4
- away();
5
- return v;
6
- }
7
- function a_or_b(a: Boolean, b:Boolean, c:Boolean, d:Boolean, e:Boolean) : Boolean {
8
- if(a || b) {
9
- yes();
10
- } else {
11
- no();
12
- }
13
- }
14
- function a_and_b_and_c(a: Boolean, b:Boolean, c:Boolean, d:Boolean, e:Boolean) : Boolean {
15
- return a && b && c;
16
- }
17
- function P_a_and_b_p_and_c(a: Boolean, b:Boolean, c:Boolean, d:Boolean, e:Boolean) : Boolean {
18
- return (a && b) && c;
19
- }
20
- function a_and_b(a: Boolean, b:Boolean, c:Boolean, d:Boolean, e:Boolean) : Boolean {
21
- return a && b;
22
- }
23
- }
@@ -1,30 +0,0 @@
1
- package test {
2
- function d() {
3
- while(true) {
4
- pow();
5
- if(frak()) { a(); break; b(); }
6
- weee();
7
- }
8
- }
9
- function c() {
10
- while(true) {
11
- pow();
12
- if(frak()) { break; }
13
- weee();
14
- }
15
- }
16
- function b() {
17
- weee();
18
- for(var q:int = 1; q > 0; q++) {
19
- frak();
20
- }
21
- }
22
- function a() {
23
- var q:int = 1;
24
- weee();
25
- while(q > 0) {
26
- frak();
27
- q++;
28
- }
29
- }
30
- }
@@ -1,14 +0,0 @@
1
- package test {
2
- function b() {
3
- var a:int = 0;
4
- var b:int;
5
- b = (a += 1);
6
- return (b -= (a += 1));
7
- }
8
- function a() {
9
- var a:int = 0;
10
- var b:int = ++a;
11
- var c:int = a++;
12
- return a;
13
- }
14
- }
@@ -1,38 +0,0 @@
1
- package test {
2
- function b(q:int):Boolean {
3
-
4
- for(;;) {
5
- switch(prop) {
6
- case 0x10:
7
- case 0x20:
8
- fuga();
9
- break;
10
-
11
- case 0x30:
12
- piyo();
13
- break;
14
-
15
- default:
16
- baz();
17
- break;
18
- }
19
- }
20
- return false;
21
- }
22
- function a(q:int):Boolean {
23
- switch(q) {
24
- case 0x10:
25
- hoge();
26
- case 0x20:
27
- fuga();
28
- break;
29
- case 0x30:
30
- piyo();
31
- break;
32
- default:
33
- baz();
34
- break;
35
- }
36
- return false;
37
- }
38
- }
@@ -1,22 +0,0 @@
1
- package test {
2
- function hardcore(a: Boolean, b:Boolean, c:Boolean, d:Boolean, e:Boolean) : Boolean {
3
- if(((a && b) ? (c || d) && e : b) && (a || b)) {
4
- return pow();
5
- } else {
6
- weeee();
7
- }
8
- duh();
9
- }
10
- function q(a: Boolean, b:Boolean, c:Boolean, d:Boolean, e:Boolean) : Boolean {
11
- return ((a ? b : c) ? (b ? c : d) : (c ? d : e));
12
- }
13
- function a_I_b_E_c_I_d_E_e(a: Boolean, b:Boolean, c:Boolean, d:Boolean, e:Boolean) : Boolean {
14
- return a ? b : (c ? d : e);
15
- }
16
- function a_I_b_I_c_E_d_E_e(a: Boolean, b:Boolean, c:Boolean, d:Boolean, e:Boolean) : Boolean {
17
- return a ? (b ? c : d) : e;
18
- }
19
- function a_I_b_E_c(a: Boolean, b:Boolean, c:Boolean, d:Boolean, e:Boolean) : Boolean {
20
- return (1 > 2) ? b : c;
21
- }
22
- }