Commit Graph

3553 Commits

Author SHA1 Message Date
Jindra Petřík
2bc1c4e012 perf: optimize recursion, avoid stackoverflow on larger scripts (#2672) 2026-04-06 21:06:19 +02:00
Jindra Petřík
7d18834c81 feat!: redesigned loop detector (#2542)
Instead of walking code structures to get loops,
the loops are populated by new faster algorithm.
Also, we do not join adjacent GraphParts anymore
in non-obfuscated code.
For proper switch handling, the code is decompiled
in two passes everytime (Previously, the second pass
was used only sometimes).
In first pass we do not process ifs as it may break
switch detection. Second pass is executed after we know
the switches position.

Fixes #2542
2026-04-06 21:06:19 +02:00
Jindra Petřík
a52126472a fix: stackoverflow on circular importassets (#2666)
Fixes #2666
2026-04-06 21:06:19 +02:00
Jindra Petřík
735dc148e6 fix: as3 deobfuscation - null values instead of registers (#2568, #2665)
Fixes #2568, #2665
2026-04-06 21:06:19 +02:00
Jindra Petřík
c91543e9f5 fix: nullpointer on as3 deobfuscation 2026-04-06 21:06:19 +02:00
Jindra Petřík
00dd23170e chore: fix regression of -- operator in nightly build (#2664)
Fixes #2664
2026-04-06 21:06:19 +02:00
Jindra Petřík
053501b8da fix: deadlock on getcharacters vs drawframe (#2492)
Fixes #2492
2026-04-06 21:06:19 +02:00
Jindra Petřík
0942d7d96d fix: push commands in as2 left in code (#2654)
If the code does not contain any §§pop() instructions,
then all §§push instructions are converted to their
values with comment "unpopped".

Fixes #2654
2026-04-06 21:06:19 +02:00
Jindra Petřík
4c78d49090 perf: faster calculate max depth frame, skip morph detection (#2662)
Fixes #2662
2026-04-06 21:06:19 +02:00
Jindra Petřík
3663a1e2e4 fix: font normalizer uses 1024em (#2661)
Fixes #2661
2026-04-06 21:06:19 +02:00
Jindra Petřík
729d754ca0 fix: as1/2 maintain push order, temp variables usage 2026-04-06 21:06:19 +02:00
Jindra Petřík
3bce48a87f fix: font normalizer axis flip (#2657)
Fixes #2657
2026-04-06 21:06:19 +02:00
Jindra Petřík
db9cd78e2c fix: direct edit properties with getters/setters (#2655)
Fixes #2655
2026-04-06 21:06:19 +02:00
Jindra Petřík
2ebdd4e166 fix: visitable variable action item 2026-04-06 21:06:19 +02:00
Jindra Petřík
4932cbd2fa refactor: implement isFreeing on cache
[ci skip]

Closes #2118
2026-03-04 20:18:02 +01:00
Jindra Petřík
cde7b927ef refactor: Remove MyMap, MySet
[ci skip]
2026-03-04 20:18:02 +01:00
Jindra Petřík
d487ef7064 Fixed: #2651 Loop breaks detection 2026-03-04 20:18:02 +01:00
Jindra Petřík
29ead369bf SVG export - Gradient glow filter
SVG filters refactoring
2026-03-04 20:18:02 +01:00
Jindra Petřík
85c7405a4d Added: SVG export - Gradient bevel filter
Fixed SVG blur kernelUnitLength
2026-03-04 20:18:02 +01:00
Jindra Petřík
6b4f22f9bf Fixed: #2649 SVG export - blur scaling (on supported browsers)
Changed: #2649 SVG export - using gaussian blur instead of box blur with convolution matrix (Can be turned off in the settings)
2026-03-04 20:18:02 +01:00
Jindra Petřík
0ccacf3865 Added: AS3 ambiguous namespace detection (back again)
Fixed: #2514 AS3 direct editation - problems with namespaces
2026-03-04 20:18:02 +01:00
Jindra Petřík
92e43cb615 Added: AS3 Direct editation - Error when accessing inaccessible namespace
Fixed: AS3 goto definition missing some namespaces
AS3 debug game testdata with debug info
2026-03-04 20:18:02 +01:00
Jindra Petřík
d3eb321ddc Added: #2644 Debugger - Button to sort variables alphabetically 2026-03-04 20:18:02 +01:00
Jindra Petřík
5f077bd505 Fixed: AS3 direct editation - proper use conver/coerce instruction
Fixed: AS3 direct editation - use coerce_f for float values
2026-03-04 20:18:02 +01:00
Jindra Petřík
42ac10e468 Changed: #2642 Sprite SWF export - do not export as SWF timeline, use DefineSprite tag and PlaceObject of it 2026-02-23 21:14:53 +01:00
Jindra Petřík
ba7c762537 Fixed: AS3 slow decompilation caused by ambiguios namespace detection 2026-02-23 09:21:44 +01:00
Jindra Petřík
f48e8e6390 Fixed: #2639 Export to FLA - missing sound streams 2026-02-20 11:23:46 +01:00
Jindra Petřík
417ffda416 Fixed: Using public/private/protected/internal keywords on ambiguous namespace references
and compiling such keywords with `::` suffix.
2026-02-19 20:54:52 +01:00
Jindra Petřík
5af558e5b2 Checkstyle fix 2026-02-18 23:50:42 +01:00
Jindra Petřík
0a4e53f455 Fixed: #2636 ActionScript 3 - type coercion / convert, local registers type propagation 2026-02-18 22:37:55 +01:00
Jindra Petřík
fab6defe9c Fixed: #2636 ActionScript - switches vs loop breaks 2026-02-18 19:46:35 +01:00
Jindra Petřík
7bc96f67f3 Fixed: AS3 property resolving for KIND_NAMESPACE (like builtin for Strings, etc.) 2026-02-18 09:50:26 +01:00
Jindra Petřík
ad727716fa Fixed: #2636 ActionScript - Incorrect always-break detection causing insertion of while(true)
Fixed: #2636 ActionScript 3 - Incorrect switch detection
2026-02-18 03:41:28 +01:00
Jindra Petřík
6a01ad3180 Square brackets is optional 2026-02-17 21:51:10 +01:00
Jindra Petřík
114f774672 Added: #2636 AS3 QName properties with nonvalid identifiers handled as square brackets 2026-02-17 20:50:57 +01:00
Jindra Petřík
8f248875fb Fixed: ConcurrentModification in abc indexing 2026-02-17 19:49:15 +01:00
Jindra Petřík
d8e569945b Fixed: StackOverflow on cyclic chyracters 2026-02-17 19:47:49 +01:00
Jindra Petřík
fe28187a97 Fixed: #2636 ActionScript - Incorrect always-break detection causing insertion of while(true)
Fixed: ActionScript - newline after do..while
2026-02-17 18:12:02 +01:00
Jindra Petřík
203ac6dcc9 Changed: Prepared files have _debug/_debugpcode suffix.
Added: Prepare for p-code debugging.
Added: Preparation progress
Fixed: Nullpointer in tag when character not found.
2026-02-16 18:19:23 +01:00
Jindra Petřík
0af8763efc Added: TTF export - setting italic / bold flags in the font
Fixed: #2632 TTF export - non-zero italic angle
2026-02-16 08:21:50 +01:00
Jindra Petřík
86e3d0dad7 Debug listening info. 2026-02-15 21:49:29 +01:00
Jindra Petřík
36f793fb7f Fixes. 2026-02-15 14:46:27 +01:00
Jindra Petřík
8645679ce9 Debugging in the browser, improved 2 2026-02-15 10:21:58 +01:00
Jindra Petřík
8032b2e39b Debugging in the browser WIP 2026-02-14 11:57:04 +01:00
Jindra Petřík
4541451290 Fixed: #2611, #2627 StackOverFlow on opening SWF containing cyclic sprites 2026-02-10 08:06:50 +01:00
Jindra Petřík
7e78b8094c Spelling fix 2026-02-09 19:14:12 +01:00
Jindra Petřík
bfc9ab13d4 More AS1/2 increment,decrement,compound using PushDuplicate 2026-02-09 17:21:48 +01:00
Jindra Petřík
a2d10314a0 Fixed: #2618 AS1/2 increment/decrement using PushDuplicate 2026-02-09 16:17:29 +01:00
Jindra Petřík
f6224d6252 Checkstyle fix 2026-02-09 14:30:41 +01:00
Jindra Petřík
4fb1bd2276 Fixed: #2626 AS1/2 direct editation - function calls inside with statement 2026-02-09 14:22:46 +01:00