{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":64957608,"defaultBranch":"main","name":"binaryen","ownerLogin":"aheejin","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2016-08-04T18:21:25.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/8726997?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1726020803.0","currentOid":""},"activityList":{"items":[{"before":"0b07c1b125715ec599c01e182db6729d550bd329","after":"29d30fabcb688b599920deef9d92a5413615eaab","ref":"refs/heads/main","pushedAt":"2024-09-16T18:53:57.000Z","pushType":"push","commitsCount":16,"pusher":{"login":"aheejin","name":"Heejin Ahn","path":"/aheejin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8726997?s=80&v=4"},"commit":{"message":"Add OCaml toolchain to binaryen readme (#6939)\n\n`wasm_of_ocaml` uses Binaryen's `wasm_as`, `wasm_merge` and `wasm_opt`\r\nas a part of its toolchain.","shortMessageHtmlLink":"Add OCaml toolchain to binaryen readme (WebAssembly#6939)"}},{"before":"92153697afaa2bcf80cc64955a1b56057aa9d540","after":null,"ref":"refs/heads/dce_pop","pushedAt":"2024-09-11T02:13:23.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"aheejin","name":"Heejin Ahn","path":"/aheejin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8726997?s=80&v=4"}},{"before":"6d7fb2117189af6778ae2da354d6da8b4975dec7","after":"92153697afaa2bcf80cc64955a1b56057aa9d540","ref":"refs/heads/dce_pop","pushedAt":"2024-09-11T00:24:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aheejin","name":"Heejin Ahn","path":"/aheejin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8726997?s=80&v=4"},"commit":{"message":"clang-format","shortMessageHtmlLink":"clang-format"}},{"before":"4922a0b42736d8ca69a3dd929c3ff6378f5d6fd6","after":"6d7fb2117189af6778ae2da354d6da8b4975dec7","ref":"refs/heads/dce_pop","pushedAt":"2024-09-11T00:22:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aheejin","name":"Heejin Ahn","path":"/aheejin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8726997?s=80&v=4"},"commit":{"message":"hasPop && addedBlocks","shortMessageHtmlLink":"hasPop && addedBlocks"}},{"before":"277f3a7a2962bdfd490a2e2567d69127e68540ba","after":"4922a0b42736d8ca69a3dd929c3ff6378f5d6fd6","ref":"refs/heads/dce_pop","pushedAt":"2024-09-10T22:43:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aheejin","name":"Heejin Ahn","path":"/aheejin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8726997?s=80&v=4"},"commit":{"message":"Remove unnecessary include","shortMessageHtmlLink":"Remove unnecessary include"}},{"before":"41067238fb01a9f75da99a6318c532b1409c9a6b","after":"277f3a7a2962bdfd490a2e2567d69127e68540ba","ref":"refs/heads/dce_pop","pushedAt":"2024-09-10T22:42:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aheejin","name":"Heejin Ahn","path":"/aheejin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8726997?s=80&v=4"},"commit":{"message":"Run fixup whenever we see a pop","shortMessageHtmlLink":"Run fixup whenever we see a pop"}},{"before":"845a73e9b728cacd91d866757f3af1ffe2710742","after":"41067238fb01a9f75da99a6318c532b1409c9a6b","ref":"refs/heads/dce_pop","pushedAt":"2024-09-10T18:04:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aheejin","name":"Heejin Ahn","path":"/aheejin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8726997?s=80&v=4"},"commit":{"message":"80 col wrapping","shortMessageHtmlLink":"80 col wrapping"}},{"before":"6a46b54525536070a9169de9a6218a84ec3bd124","after":"845a73e9b728cacd91d866757f3af1ffe2710742","ref":"refs/heads/dce_pop","pushedAt":"2024-09-10T18:03:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aheejin","name":"Heejin Ahn","path":"/aheejin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8726997?s=80&v=4"},"commit":{"message":"Update test/lit/passes/dce-eh-legacy.wast\n\nCo-authored-by: Alon Zakai ","shortMessageHtmlLink":"Update test/lit/passes/dce-eh-legacy.wast"}},{"before":"d84e864815ef787a30a6697b023b4961b8303107","after":"6a46b54525536070a9169de9a6218a84ec3bd124","ref":"refs/heads/dce_pop","pushedAt":"2024-09-10T08:52:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aheejin","name":"Heejin Ahn","path":"/aheejin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8726997?s=80&v=4"},"commit":{"message":"feature check to avoid unnecessary FindAll","shortMessageHtmlLink":"feature check to avoid unnecessary FindAll"}},{"before":"cf0fda5c6599b91b92e92f526d4d342f54375981","after":"d84e864815ef787a30a6697b023b4961b8303107","ref":"refs/heads/dce_pop","pushedAt":"2024-09-10T05:10:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aheejin","name":"Heejin Ahn","path":"/aheejin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8726997?s=80&v=4"},"commit":{"message":"expectation update","shortMessageHtmlLink":"expectation update"}},{"before":"35808215e9c7500d61f23c9bfdb2862ff841d056","after":"cf0fda5c6599b91b92e92f526d4d342f54375981","ref":"refs/heads/dce_pop","pushedAt":"2024-09-10T05:09:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aheejin","name":"Heejin Ahn","path":"/aheejin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8726997?s=80&v=4"},"commit":{"message":"Remove unnecessary catch_all","shortMessageHtmlLink":"Remove unnecessary catch_all"}},{"before":null,"after":"35808215e9c7500d61f23c9bfdb2862ff841d056","ref":"refs/heads/dce_pop","pushedAt":"2024-09-10T00:43:57.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"aheejin","name":"Heejin Ahn","path":"/aheejin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8726997?s=80&v=4"},"commit":{"message":"[EH] Fix pop enclosed within a block in DCE\n\n #6400 fixed this case but that handled only when a `pop` is an\nimmediate child of the current expression, but a `pop` can be nested\ndeeper down.\n\nFixes #6918.","shortMessageHtmlLink":"[EH] Fix pop enclosed within a block in DCE"}},{"before":"9790ca3ce809cb6bf26445babcbb49434c8ac71b","after":"0b07c1b125715ec599c01e182db6729d550bd329","ref":"refs/heads/main","pushedAt":"2024-09-09T21:30:51.000Z","pushType":"push","commitsCount":16,"pusher":{"login":"aheejin","name":"Heejin Ahn","path":"/aheejin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8726997?s=80&v=4"},"commit":{"message":"Fix a warning under gcc 14 (#6912)\n\nFixes: https://github.com/WebAssembly/binaryen/issues/6779","shortMessageHtmlLink":"Fix a warning under gcc 14 (WebAssembly#6912)"}},{"before":"9671b985aca3ce8ee18e7886229ba03c02e73fac","after":"9790ca3ce809cb6bf26445babcbb49434c8ac71b","ref":"refs/heads/main","pushedAt":"2024-09-04T23:13:20.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"aheejin","name":"Heejin Ahn","path":"/aheejin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8726997?s=80&v=4"},"commit":{"message":"[EH] Rename Catch(All)_P3 to Catch(All)_Legacy (NFC) (#6901)\n\nThis renames `Catch(All)_P3` enum to denote the old Phase 3\r\n`catch(_all)` instructions to `Catch(All)_Legacy`, which sounds clearer.\r\n\r\nThis is also to be consistent with\r\nhttps://github.com/llvm/llvm-project/pull/107187.","shortMessageHtmlLink":"[EH] Rename Catch(All)_P3 to Catch(All)_Legacy (NFC) (WebAssembly#6901)"}},{"before":"cd192798ed123a0eeedf717292c81561af55cde1","after":null,"ref":"refs/heads/catch_legacy","pushedAt":"2024-09-04T23:13:00.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"aheejin","name":"Heejin Ahn","path":"/aheejin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8726997?s=80&v=4"}},{"before":"e279406d111f4a81ad7889a8a872d238defe3280","after":"cd192798ed123a0eeedf717292c81561af55cde1","ref":"refs/heads/catch_legacy","pushedAt":"2024-09-04T19:37:04.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"aheejin","name":"Heejin Ahn","path":"/aheejin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8726997?s=80&v=4"},"commit":{"message":"Merge branch 'main' into catch_legacy","shortMessageHtmlLink":"Merge branch 'main' into catch_legacy"}},{"before":"b2677842ae489835e5ce842c997ccacba79a2fb2","after":"9671b985aca3ce8ee18e7886229ba03c02e73fac","ref":"refs/heads/main","pushedAt":"2024-09-04T19:36:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aheejin","name":"Heejin Ahn","path":"/aheejin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8726997?s=80&v=4"},"commit":{"message":"[CI] Fix GitHub error due to deprecated artifact uploading v1 (#6900)","shortMessageHtmlLink":"[CI] Fix GitHub error due to deprecated artifact uploading v1 (WebAss…"}},{"before":null,"after":"e279406d111f4a81ad7889a8a872d238defe3280","ref":"refs/heads/catch_legacy","pushedAt":"2024-09-04T17:06:26.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"aheejin","name":"Heejin Ahn","path":"/aheejin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8726997?s=80&v=4"},"commit":{"message":"[EH] Rename Catch(All)_P3 to Catch(All)_Legacy (NFC)\n\nThis renames `Catch(All)_P3` enum to denote the old Phase 3\n`catch(_all)` instructions to `Catch(All)_Legacy`, which sounds clearer.\n\nThis is also to be consistent with\nhttps://github.com/llvm/llvm-project/pull/107187.","shortMessageHtmlLink":"[EH] Rename Catch(All)_P3 to Catch(All)_Legacy (NFC)"}},{"before":"952286421a19fb8358d645f49d455b75bfbd1d19","after":"b2677842ae489835e5ce842c997ccacba79a2fb2","ref":"refs/heads/main","pushedAt":"2024-09-04T16:02:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aheejin","name":"Heejin Ahn","path":"/aheejin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8726997?s=80&v=4"},"commit":{"message":"[EH] Rename BrTarget to Trampoline (NFC) (#6898)\n\nThis renames \"delegate_br_target\" to \"delegate_trampoline\". So how we\r\ntranslate `try`-`delegate` is:\r\n- Before:\r\n```wast\r\n(try $delegate_target\r\n ...\r\n (try\r\n (do\r\n ...\r\n )\r\n (delegate $delegate_target)\r\n )\r\n ...\r\n)\r\n```\r\n\r\n- After:\r\n```wast\r\n(try_table $delegate_target\r\n (throw_ref\r\n (block $delegate_br_target\r\n ...\r\n (try_table (catch_all $delegate_br_target)\r\n ...\r\n )\r\n ...\r\n )\r\n )\r\n)\r\n```\r\n\r\nSo `delegate_br_target` is the destination we branch (via `try_table`)\r\nto, in order to rethrow the exnref using `throw_ref`.\r\n\r\nBut given that the translated code does not actually have a `br`, I\r\nthink this name can be confusing.\r\n\r\nThis renames `br_target` to `trampoline`, given that the block is upon\r\nwhich we bounce the exnref off to reach the real delegate target.\r\n\r\nThis is to be consistent with the variable names in the LLVM\r\nimplementation (which has not been submitted yet).","shortMessageHtmlLink":"[EH] Rename BrTarget to Trampoline (NFC) (WebAssembly#6898)"}},{"before":"fa1e0af617ba57c85c27aca17fe93577c30a6e23","after":null,"ref":"refs/heads/trampoline","pushedAt":"2024-09-04T16:00:21.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"aheejin","name":"Heejin Ahn","path":"/aheejin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8726997?s=80&v=4"}},{"before":"dacc6e57048dc9af133c98ea3c843f8b912c9980","after":"952286421a19fb8358d645f49d455b75bfbd1d19","ref":"refs/heads/main","pushedAt":"2024-09-04T06:19:43.000Z","pushType":"push","commitsCount":18,"pusher":{"login":"aheejin","name":"Heejin Ahn","path":"/aheejin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8726997?s=80&v=4"},"commit":{"message":"[NFC] Convert HeapStoreOptimization to use a CFG (#6896)\n\nThis does not use the CFG yet, so there is no benefit (and likely some small\r\nslowdown). The next PR will actually use it to fix a correctness bug. This PR\r\nonly sets up the CFG and converts the pass to operate on it, without changing\r\nany behavior or tests.\r\n\r\nFollowup to #6882","shortMessageHtmlLink":"[NFC] Convert HeapStoreOptimization to use a CFG (WebAssembly#6896)"}},{"before":"fa5309ef7a32274c145300b69acd0684e4fbafd0","after":"fa1e0af617ba57c85c27aca17fe93577c30a6e23","ref":"refs/heads/trampoline","pushedAt":"2024-09-04T00:50:07.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"aheejin","name":"Heejin Ahn","path":"/aheejin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8726997?s=80&v=4"},"commit":{"message":"[EH] Rename BrTarget to Trampoline (NFC)\n\nThis renames \"delegate_br_target\" to \"delegate_trampoline\". So how we\ntranslate `try`-`delegate` is:\n- Before:\n```wast\n(try $delegate_target\n ...\n (try\n (do\n ...\n )\n (delegate $delegate_target)\n )\n ...\n)\n```\n\n- After:\n```wast\n(try_table $delegate_target\n (throw_ref\n (block $delegate_br_target\n ...\n (try_table (catch_all $delegate_br_target)\n ...\n )\n ...\n )\n )\n)\n```\n\nSo `delegate_br_target` is the destination we branch (via `try_table`)\nto, in order to rethrow the exnref using `throw_ref`.\n\nBut given that the translated code does not actually have a `br`, I\nthink this name can be confusing.\n\nThis renames `br_target` to `trampoline`, given that the block is upon\nwhich we bounce the exnref off to reach the real delegate target.\n\nThis is to be consistent with the variable names in the LLVM\nimplementation (which has not been submitted yet).","shortMessageHtmlLink":"[EH] Rename BrTarget to Trampoline (NFC)"}},{"before":null,"after":"fa5309ef7a32274c145300b69acd0684e4fbafd0","ref":"refs/heads/trampoline","pushedAt":"2024-09-04T00:49:35.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"aheejin","name":"Heejin Ahn","path":"/aheejin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8726997?s=80&v=4"},"commit":{"message":"[EH] Rename BrTarget to Trampoline (NFC)\n\nThis renames \"delegate_br_target\" to \"delegate_trampoline\". So how we\ntranslate `try`-`delegate` is:\n- Before:\n```cpp\n(try $delegate_target\n ...\n (try\n (do\n ...\n )\n (delegate $delegate_target)\n )\n ...\n)\n```\n\n- After:\n```cpp\n(try_table $delegate_target\n (throw_ref\n (block $delegate_br_target\n ...\n (try_table (catch_all $delegate_br_target)\n ...\n )\n ...\n )\n )\n)\n```\n\nSo `delegate_br_target` is the destination we branch (via `try_table`)\nto, in order to rethrow the exnref using `throw_ref`.\n\nBut given that the translated code does not actually have a `br`, I\nthink this name can be confusing.\n\nThis renames `br_target` to `trampoline`, given that the block is upon\nwhich we bounce the exnref off to reach the real delegate target.\n\nThis is to be consistent with the variable names in the LLVM\nimplementation (which has not been submitted yet).","shortMessageHtmlLink":"[EH] Rename BrTarget to Trampoline (NFC)"}},{"before":"a4f9128f94b540fa04b67610eb501cb32ea203b4","after":"dacc6e57048dc9af133c98ea3c843f8b912c9980","ref":"refs/heads/main","pushedAt":"2024-08-26T18:44:40.000Z","pushType":"push","commitsCount":30,"pusher":{"login":"aheejin","name":"Heejin Ahn","path":"/aheejin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8726997?s=80&v=4"},"commit":{"message":"Support more reference constants in wast scripts (#6865)\n\nSpec tests use constants like `ref.array` and `ref.eq` to assert that\r\nexported function return references of the correct types. Support more\r\nsuch constants in the wast parser.\r\n\r\nAlso fix a bug where the interpretation of `array.new_data` for arrays\r\nof packed fields was not properly truncating the packed data. Move the\r\nfunction for reading fields from memory from literal.cpp to\r\nwasm-interpreter.h, where the function for truncating packed data lives.\r\n\r\nOther bugs prevent us from enabling any more spec tests as a result of\r\nthis change, but we can get farther through several of them before\r\nfailing. Update the comments about the failures accordingly.","shortMessageHtmlLink":"Support more reference constants in wast scripts (WebAssembly#6865)"}},{"before":"61efc6963fb7f506488357475e4428a8ee3abb89","after":"21bdc488e0cd52d30564871ac2dcab169544a406","ref":"refs/heads/opcode_parse_print","pushedAt":"2024-08-16T05:54:13.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"aheejin","name":"Heejin Ahn","path":"/aheejin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8726997?s=80&v=4"},"commit":{"message":"Print opcode while parsing","shortMessageHtmlLink":"Print opcode while parsing"}},{"before":"353e19e3343fb06eacdd8b438b305b536291bdd5","after":"a4f9128f94b540fa04b67610eb501cb32ea203b4","ref":"refs/heads/main","pushedAt":"2024-08-12T21:59:26.000Z","pushType":"push","commitsCount":34,"pusher":{"login":"aheejin","name":"Heejin Ahn","path":"/aheejin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8726997?s=80&v=4"},"commit":{"message":"GlobalTypeOptimization: Reorder fields in order to remove them (#6820)\n\nBefore, we only removed fields from the end of a struct. If we had, say\r\n\r\nstruct Foo {\r\n int x;\r\n int y;\r\n int z;\r\n};\r\n\r\n// Add no fields but inherit the parent's.\r\nstruct Bar : Foo {};\r\n\r\nIf y is only used in Bar, but never Foo, then we still kept it around, because\r\nif we removed it from Foo we'd end up with Foo = {x, z}, Bar = {x, y, z} which\r\nis invalid - Bar no longer extends Foo. But we can do this if we first reorder\r\nthe two:\r\n\r\nstruct Foo {\r\n int x;\r\n int z;\r\n int y; // now y is at the end\r\n};\r\n\r\nstruct Bar : Foo {};\r\n\r\nAnd the optimized form is\r\n\r\nstruct Foo {\r\n int x;\r\n int z;\r\n};\r\n\r\nstruct Bar : Foo {\r\n int y; // now y is added in Bar\r\n};\r\n\r\nThis lets us remove all fields possible in all cases AFAIK.\r\n\r\nThis situation is not super-common, as most fields are actually used both\r\nup and down the hierarchy (if they are used at all), but testing on some\r\nlarge real-world codebases, I see 10 fields removed in Java, 45 in Kotlin,\r\nand 31 in Dart testcases.\r\n\r\nThe NFC change to src/wasm-type-ordering.h was needed for this to\r\ncompile.","shortMessageHtmlLink":"GlobalTypeOptimization: Reorder fields in order to remove them (WebAs…"}},{"before":"cdf8139a441c27c16eff02ccee65c463500fc00f","after":"353e19e3343fb06eacdd8b438b305b536291bdd5","ref":"refs/heads/main","pushedAt":"2024-07-23T23:01:07.000Z","pushType":"push","commitsCount":58,"pusher":{"login":"aheejin","name":"Heejin Ahn","path":"/aheejin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8726997?s=80&v=4"},"commit":{"message":"Properly validate ref.cast when lacking a common supertype (#6741)\n\n\r\n\r\nWhen lacking a common supertype the GLB operation makes the type of the cast\r\nunreachable, which errors on getHeapType in the later code.\r\n\r\nFixes #6738","shortMessageHtmlLink":"Properly validate ref.cast when lacking a common supertype (WebAssemb…"}},{"before":"636d1b2af6f349a9c7fca908bad05108419835e3","after":"cdf8139a441c27c16eff02ccee65c463500fc00f","ref":"refs/heads/main","pushedAt":"2024-07-02T02:14:05.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"aheejin","name":"Heejin Ahn","path":"/aheejin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8726997?s=80&v=4"},"commit":{"message":"ConstantFieldPropagation: Add a variation that picks between 2 values using RefTest (#6692)\n\nCFP focuses on finding when a field always contains a constant, and then replaces\r\na struct.get with that constant. If we find there are two constant values, then in some\r\ncases we can still optimize, if we have a way to pick between them. All we have is the\r\nstruct.get and its reference, so we must use a ref.test:\r\n\r\n (struct.get $T x (..ref..))\r\n =>\r\n (select\r\n (..constant1..)\r\n (..constant2..)\r\n (ref.test $U (..ref..))\r\n )\r\n\r\nThis is valid if, of all the subtypes of $T, those that pass the test have\r\nconstant1 in that field, and those that fail the test have constant2. For\r\nexample, a simple case is where $T has two subtypes, $T is never created\r\nitself, and each of the two subtypes has a different constant value.\r\n\r\nThis is a somewhat risky operation, as ref.test is not necessarily cheap.\r\nTo mitigate that, this is a new pass, --cfp-reftest that is not run by\r\ndefault, and also we only optimize when we can use a ref.test on what\r\nwe think will be a final type (because ref.test on a final type can be\r\nfaster in VMs).","shortMessageHtmlLink":"ConstantFieldPropagation: Add a variation that picks between 2 values…"}},{"before":"765c61445550c6e4ecfd250e1893d776d570b4fd","after":"636d1b2af6f349a9c7fca908bad05108419835e3","ref":"refs/heads/main","pushedAt":"2024-06-26T23:41:52.000Z","pushType":"push","commitsCount":16,"pusher":{"login":"aheejin","name":"Heejin Ahn","path":"/aheejin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8726997?s=80&v=4"},"commit":{"message":"[threads] Ignore shared-array.wast in fuzzer initial contents (#6706)","shortMessageHtmlLink":"[threads] Ignore shared-array.wast in fuzzer initial contents (WebAss…"}},{"before":"cdd94a01ad02e944eaa9ba5e20a1129bef9ac305","after":"765c61445550c6e4ecfd250e1893d776d570b4fd","ref":"refs/heads/main","pushedAt":"2024-06-20T02:38:25.000Z","pushType":"push","commitsCount":26,"pusher":{"login":"aheejin","name":"Heejin Ahn","path":"/aheejin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8726997?s=80&v=4"},"commit":{"message":"Validate that names are valid UTF-8 (#6682)\n\nAdd an `isUTF8` utility and use it in both the text and binary parsers.\r\nAdd missing checks for overlong encodings and overlarge code points in\r\nour WTF8 reader, which the new utility uses. Re-enable the spec tests\r\nthat test UTF-8 validation.","shortMessageHtmlLink":"Validate that names are valid UTF-8 (WebAssembly#6682)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xNlQxODo1Mzo1Ny4wMDAwMDBazwAAAAS3x0T8","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xNlQxODo1Mzo1Ny4wMDAwMDBazwAAAAS3x0T8","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNi0yMFQwMjozODoyNS4wMDAwMDBazwAAAARqFe2J"}},"title":"Activity · aheejin/binaryen"}