Adrian Wielgosik
4971f5be2d
avm2: Prevent chained dependent strings
2024-01-30 23:21:37 +01:00
Adrian Wielgosik
ecbb0f92f1
avm2: Add small string store to interner, expand use
2024-01-30 23:21:37 +01:00
Adrian Wielgosik
7aa95fe463
avm2: Dependent strings POC
2024-01-30 23:21:37 +01:00
Aaron Hill
12c47047b8
debug_ui: Display 'Movie' button on 'Class Info' panel
2024-01-30 17:26:05 +01:00
renovate[bot]
3737725a21
fix(deps): update rust dependencies
2024-01-30 09:23:15 +01:00
Fancy2209
4368a81978
chore: Fix GitHub language detection
2024-01-30 08:00:51 +00:00
Lord-McSweeney
dbc1015ef5
avm2: Resolve review comments and fix verifier brokenness
2024-01-29 22:48:00 -08:00
Lord-McSweeney
8b29ceaafa
avm2: Write a `make_error_1032` function and use it
2024-01-29 22:48:00 -08:00
Lord-McSweeney
c1c3351654
avm2: `Op::Coerce` should not accept a 0-index `Multiname`
2024-01-29 22:48:00 -08:00
Lord-McSweeney
fcf83d7dd9
avm2: Properly verify constant pool lookups for `Op::Coerce` and `Op::AsType`
2024-01-29 22:48:00 -08:00
Lord-McSweeney
442391ea60
avm2: Fix a minor bug where `CoerceD` was removed after `Inc`/`DecLocal`
2024-01-29 22:48:00 -08:00
Lord-McSweeney
a756970072
tests: Add a test for AVM2 verification
2024-01-29 22:48:00 -08:00
Lord-McSweeney
7b853a8cd9
avm2: One more lazy multiname fix
2024-01-29 22:48:00 -08:00
Lord-McSweeney
ce41362b1e
avm2: Fix some potentially-failing unwraps and broken code in the verifier
2024-01-29 22:48:00 -08:00
Lord-McSweeney
50b752c35b
avm2: Add longer comment to logic to determine register types
2024-01-29 22:48:00 -08:00
Lord-McSweeney
dd35e4862f
avm2: Fix crash when `Coerce`/`AsType` used a lazy multiname
2024-01-29 22:48:00 -08:00
Lord-McSweeney
dd82126448
avm2: Optimize unnecessary `Coerce` when it comes after `PushString`, `NewArray`, and `NewFunction`
2024-01-29 22:48:00 -08:00
Lord-McSweeney
f99c5621ee
avm2: Add more ops that are guaranteed to not throw errors to `verify::ops_can_throw_error`
...
This requires a minor change to `Activation::op_lookup_switch`
2024-01-29 22:48:00 -08:00
Lord-McSweeney
6be4918d77
avm2: Resolve reviews
2024-01-29 22:48:00 -08:00
Lord-McSweeney
2d3b23c719
swf: Remove `PushConstant` AVM2 opcode
2024-01-29 22:48:00 -08:00
Lord-McSweeney
e6c5ba51e4
avm2: Optimize `Coerce` out when it comes right after another `Coerce` pointing to the same cpool entry
2024-01-29 22:48:00 -08:00
Lord-McSweeney
28edee498b
avm2: Make `verify_code_starting_from` use a worklist instead of running recursively
...
This fixes a stack overflow on one test.
2024-01-29 22:48:00 -08:00
Lord-McSweeney
b4f016c1cd
avm2: Add `CoerceU` op optimizations
2024-01-29 22:48:00 -08:00
Lord-McSweeney
30f99bcd19
avm2: Add optimizations for `Coerce` and `AsType` after `PushNull`, fix `optimize` panicking when out-of-bounds local registers are mentioned
2024-01-29 22:48:00 -08:00
Lord-McSweeney
3f76b248e9
avm2: Remove `Label` op since it is only relevant to the verifier, inline `CoerceA` and `Nop`
2024-01-29 22:48:00 -08:00
Lord-McSweeney
8e997f0131
avm2: Optimize a GetProperty after a GetLocal0 to GetSlot or CallMethod
2024-01-29 22:48:00 -08:00
Lord-McSweeney
8d3847b216
avm2: Add default xml namespace handling opcodes since several SWFs mention them but don't actually use them
2024-01-29 22:48:00 -08:00
Lord-McSweeney
c4a3b3f49f
avm2: Implement simple Op::CoerceX optimizations
2024-01-29 22:48:00 -08:00
Lord-McSweeney
f9fb739460
avm2: Record all possible jump targets, remove Convert-B/D/I/U opcodes since those are equivalent to the corresponding CoerceX opcodes
2024-01-29 22:48:00 -08:00
Lord-McSweeney
2022321a03
avm2: Add an `Op` enum to AVM2; pre-pool double/uint/ints for `pushX` opcodes
2024-01-29 22:48:00 -08:00
Lord-McSweeney
65848104a6
avm2: Implement verifier based off Adrian's initial work
2024-01-29 22:48:00 -08:00
Daniel Jacobs
21ef5c65bf
ci: Update web workflow to use paths-filter v4
2024-01-29 23:13:25 -05:00
Daniel Jacobs
bac2256c32
ci: Update Rust workflow to use paths-filter v4
2024-01-29 23:13:25 -05:00
Aaron Hill
1cf669c75e
avm2: Convert invalid rectangle to zero rectangle in getBounds
2024-01-29 13:25:16 -05:00
Aaron Hill
f31d9bc491
avm2: Make Math.random() more closely match Flash Player
...
See the comments for details. Our previous implementation
was 'too good', and broke Bloons Tower Defense 5 by
generating `Number`s that Flash Player would never generate.
2024-01-28 22:46:19 -05:00
Fancy2209
f2880975ba
avm2: Report OS as Windows instead of Linux for now ( #14985 )
2024-01-28 22:10:54 +00:00
Aaron Hill
5b685d411f
chore: Fix nightly Clippy lints
2024-01-28 16:03:29 -05:00
Tom Schuster
40c0f90105
tests: Test all remaining FileReference properties
2024-01-28 17:14:10 +01:00
Tom Schuster
b8d8aafe89
avm2: Implement the remaining flash.net.FileReference properties
2024-01-28 17:14:10 +01:00
Nathan Adams
fcb74d8fbc
wgpu: Deduplicate common gradients from a single Mesh
2024-01-27 21:37:22 +01:00
Nathan Adams
e479d12af0
render: Make Mesh a struct, not just an alias for Vec<Draw>
2024-01-27 21:37:22 +01:00
Nathan Adams
6dac4958fb
swf: Derive Hash for Gradient and associated types
2024-01-27 21:37:22 +01:00
Nathan Adams
2d42abcb70
wgpu: Don't use max_uniform_buffer_binding_size as a limit for BufferBuilder when making meshes
2024-01-27 21:37:22 +01:00
Nathan Adams
ab404bae2a
wgpu: Remove ouroboros and typed-arena, no longer needed
2024-01-27 21:37:22 +01:00
Nathan Adams
3be2efe7cf
wgpu: Clean up DynamicTransforms, after the merge
2024-01-27 21:37:22 +01:00
Nathan Adams
c3423b86f8
wgpu: Use vertex buffer and staging belt for bevel filter
2024-01-27 21:37:22 +01:00
Nathan Adams
7e0bd48061
wgpu: Use vertex buffer and staging belt for glow filter
2024-01-27 21:37:22 +01:00
Nathan Adams
2722a6588e
wgpu: Use vertex buffer and staging belt for simple filters
2024-01-27 21:37:22 +01:00
Nathan Adams
9320de354c
wgpu: Use staging belt and single buffer for filter arguments
2024-01-27 21:37:22 +01:00
Nathan Adams
76d07faacf
wgpu: Make sync index Option<> in make_queue_sync_handle
2024-01-27 21:37:22 +01:00