Commit Graph

11424 Commits

Author SHA1 Message Date
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
Nathan Adams f99f89122a wgpu: Remove uniform encoder 2024-01-27 21:37:22 +01:00
Nathan Adams de975a9727 wgpu: Merge Transforms and ColorAdjustments 2024-01-27 21:37:22 +01:00
Nathan Adams 1231d2fead wgpu: Extract out ESTIMATED_OBJECTS_PER_CHUNK, set it to 200 2024-01-27 21:37:22 +01:00
Nathan Adams 574e83f3a3 wgpu: Use max_uniform_buffer_binding_size from adapter 2024-01-27 21:37:22 +01:00
Nathan Adams befce41e11 wgpu: Remove push constant support - simplifies code significantly, and it should be same perf now 2024-01-27 21:37:22 +01:00
Nathan Adams fd604b3a18 wgpu: Try using a single buffer/bindgroup for transform/colortransforms, no longer dynamically allocated 2024-01-27 21:37:22 +01:00
Nathan Adams 6824f33cc6 wgpu: Add limits to BufferBuilder (but currently not respected for Meshes) 2024-01-27 21:37:22 +01:00
Adrian Wielgosik 4981cbd89b avm2: Avoid double lookup in setPropertyIsEnumerable 2024-01-27 16:51:17 +01:00
Nathan Adams e778e5ed58 desktop: Fix context menu, use new approach rather than trying to hack activate egui's menu 2024-01-27 09:44:31 +01:00
Tom Schuster 941e60aef5 web: Temporary disable display_file_save_dialog to prevent panics 2024-01-27 00:41:14 +01:00
Crowdin Bot 4769a45999 chore: Update translations from Crowdin 2024-01-26 22:54:04 +01:00
arthomnix 3e82ba9a63 desktop: Allow specifying WGPU instance flags from environment 2024-01-26 22:33:18 +01:00
Tom Schuster 7a73dd0661 avm2: Only use embedded CFF fonts for TLF 2024-01-26 21:57:48 +01:00