Optimizer and compiler/toolchain library for WebAssembly
This report summarizes scanner evidence for WebAssembly/binaryen, a WebAssembly project with 8,670 GitHub stars. SynthScan examined 528,722 lines of code across 1266 source files, recording 1885 pattern matches distributed across 18 syntactic categories. The legacy adjusted pattern signal is 3.7 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 1831 finding(s).
Are imports declared and package/API names verified? 4 finding(s).
Are wrappers, guards, and repeated structures necessary? 93 finding(s).
Which changes need focused human review? 1885 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 1885 distinct pattern matches across 18 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | check.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | test/__init__.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | test/bigswitch.cpp | 1761 | //case 0x8825 /* GL_DRAW_BUFFER0_ARB */: return "GL_DRAW_BUFFER0_ARB (0x8825)"; | COMMENT |
| LOW | test/bigswitch.cpp | 2381 | //case 0x80AA /* GL_SAMPLE_COVERAGE_VALUE_ARB */: return "GL_SAMPLE_COVERAGE_VALUE_ARB (0x80AA)"; | COMMENT |
| LOW | test/bigswitch.cpp | 2401 | //case 0x84CD /* GL_TEXTURE13_ARB */: return "GL_TEXTURE13_ARB (0x84CD)"; | COMMENT |
| LOW | test/bigswitch.cpp | 2681 | COMMENT | |
| LOW | test/bigswitch.cpp | 2781 | //case 0x8B58 /* GL_BOOL_VEC3_ARB */: return "GL_BOOL_VEC3_ARB (0x8B58)"; | COMMENT |
| LOW | test/bigswitch.cpp | 3041 | case 0x919F /* GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT */: return "GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT (0x919F)"; | COMMENT |
| LOW | test/bigswitch.cpp | 3141 | //case 0x84E7 /* GL_SUBTRACT_ARB */: return "GL_SUBTRACT_ARB (0x84E7)"; | COMMENT |
| LOW | test/bigswitch.cpp | 3201 | //case 0x881C /* GL_ALPHA16F_ARB */: return "GL_ALPHA16F_ARB (0x881C)"; | COMMENT |
| LOW | test/bigswitch.cpp | 3601 | COMMENT | |
| LOW | test/bigswitch.cpp | 3621 | //case 0x88B8 /* GL_READ_ONLY_ARB */: return "GL_READ_ONLY_ARB (0x88B8)"; | COMMENT |
| LOW | test/bigswitch.cpp | 3821 | COMMENT | |
| LOW | test/bigswitch.cpp | 3881 | //case 0x00000001 /* GL_2X_BIT_ATI */: return "GL_2X_BIT_ATI (0x00000001)"; | COMMENT |
| LOW | test/bigswitch.cpp | 4021 | COMMENT | |
| LOW | test/bigswitch.cpp | 4261 | //case 0x8012 /* GL_SEPARABLE_2D_EXT */: return "GL_SEPARABLE_2D_EXT (0x8012)"; | COMMENT |
| LOW | test/bigswitch.cpp | 4421 | COMMENT | |
| LOW | test/bigswitch.cpp | 4441 | case 0x8CDA /* GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT */: return "GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT (0x8CDA)"; | COMMENT |
| LOW | test/bigswitch.cpp | 4461 | //case 0x8CEF /* GL_COLOR_ATTACHMENT15_EXT */: return "GL_COLOR_ATTACHMENT15_EXT (0x8CEF)"; | COMMENT |
| LOW | test/bigswitch.cpp | 4501 | //case 0x8642 /* GL_PROGRAM_POINT_SIZE_EXT */: return "GL_PROGRAM_POINT_SIZE_EXT (0x8642)"; | COMMENT |
| LOW | test/bigswitch.cpp | 4521 | COMMENT | |
| LOW | test/bigswitch.cpp | 4541 | //case 0x8DCA /* GL_INT_SAMPLER_2D_EXT */: return "GL_INT_SAMPLER_2D_EXT (0x8DCA)"; | COMMENT |
| LOW | test/bigswitch.cpp | 4561 | /* ---------------------------- GL_EXT_histogram --------------------------- */ | COMMENT |
| LOW | test/bigswitch.cpp | 4861 | //case 0x00000100 /* GL_TEXTURE_UPDATE_BARRIER_BIT_EXT */: return "GL_TEXTURE_UPDATE_BARRIER_BIT_EXT (0x00000100)"; | COMMENT |
| LOW | test/bigswitch.cpp | 4881 | //case 0x9054 /* GL_IMAGE_CUBE_MAP_ARRAY_EXT */: return "GL_IMAGE_CUBE_MAP_ARRAY_EXT (0x9054)"; | COMMENT |
| LOW | test/bigswitch.cpp | 4981 | //case 0x8044 /* GL_LUMINANCE6_ALPHA2_EXT */: return "GL_LUMINANCE6_ALPHA2_EXT (0x8044)"; | COMMENT |
| LOW | test/bigswitch.cpp | 5001 | //case 0x8058 /* GL_RGBA8_EXT */: return "GL_RGBA8_EXT (0x8058)"; | COMMENT |
| LOW | test/bigswitch.cpp | 5021 | COMMENT | |
| LOW | test/bigswitch.cpp | 5101 | COMMENT | |
| LOW | test/bigswitch.cpp | 5161 | //case 0x8580 /* GL_SOURCE0_RGB_EXT */: return "GL_SOURCE0_RGB_EXT (0x8580)"; | COMMENT |
| LOW | test/bigswitch.cpp | 5241 | case 0x8D92 /* GL_LUMINANCE8I_EXT */: return "GL_LUMINANCE8I_EXT (0x8D92)"; | COMMENT |
| LOW | test/bigswitch.cpp | 5361 | COMMENT | |
| LOW | test/bigswitch.cpp | 5421 | COMMENT | |
| LOW | test/bigswitch.cpp | 5441 | COMMENT | |
| LOW | test/bigswitch.cpp | 5461 | //case 0x8085 /* GL_INDEX_ARRAY_TYPE_EXT */: return "GL_INDEX_ARRAY_TYPE_EXT (0x8085)"; | COMMENT |
| LOW | test/bigswitch.cpp | 5761 | COMMENT | |
| LOW | test/bigswitch.cpp | 6341 | //case 0x04 /* GL_LINE_TO_NV */: return "GL_LINE_TO_NV (0x04)"; | COMMENT |
| LOW | test/bigswitch.cpp | 6781 | //case 0x86DB /* GL_UNSIGNED_INT_8_8_S8_S8_REV_NV */: return "GL_UNSIGNED_INT_8_8_S8_S8_REV_NV (0x86DB)"; | COMMENT |
| LOW | test/bigswitch.cpp | 6861 | //case 0x8C87 /* GL_PRIMITIVES_GENERATED_NV */: return "GL_PRIMITIVES_GENERATED_NV (0x8C87)"; | COMMENT |
| LOW | test/bigswitch.cpp | 7341 | //case 0x809E /* GL_SAMPLE_ALPHA_TO_MASK_SGIS */: return "GL_SAMPLE_ALPHA_TO_MASK_SGIS (0x809E)"; | COMMENT |
| LOW | test/bigswitch.cpp | 7781 | COMMENT | |
| LOW | test/bigswitch.cpp | 7801 | COMMENT | |
| LOW | test/unit/test_dwarf.py | 181 | # destroy it). we scan the wasm to see if there is any DWARF when | COMMENT |
| LOW | test/unit/test_cluster_fuzz.py | 121 | # let run.py run normally, to simulate the real environment), so flakes | COMMENT |
| LOW | test/unit/test_cluster_fuzz.py | 161 | # struct.news appear (a signal that we are emitting WasmGC, and also a | COMMENT |
| LOW | test/unit/test_cluster_fuzz.py | 301 | seen_JSPIs = [] | COMMENT |
| LOW | test/example/cpp-unit.cpp | 1 | // test multiple uses of the threadPool | COMMENT |
| LOW | test/example/c-api-kitchen-sink.c | 1 | // We always need asserts here | COMMENT |
| LOW | test/example/c-api-kitchen-sink.c | 1081 | BinaryenRefNull(module, BinaryenHeapTypeNoext())), | COMMENT |
| LOW | test/passes/dwarf_with_exceptions.cpp | 1 | void foo(); | COMMENT |
| LOW | test/gtest/leaves.cpp | 41 | EXPECT_EQ(IsLeaf<id>::value, !hasChildren); \ | COMMENT |
| LOW | test/gtest/wto.cpp | 321 | } | COMMENT |
| LOW | test/gtest/cfg.cpp | 1 | #include <iostream> | COMMENT |
| LOW | test/gtest/stringify.cpp | 681 | // Module wasm; | COMMENT |
| LOW | test/gtest/stringify.cpp | 701 | // Visited(End{nullptr}), | COMMENT |
| LOW | test/gtest/istring.cpp | 1 | // Copyright 2026 WebAssembly Community Group participants | COMMENT |
| LOW | test/gtest/suffix_tree.cpp | 1 | // This file began as an import from LLVM, and so it has the same license as | COMMENT |
| LOW | test/gtest/lattices.cpp | 21 | #include "analysis/lattices/conetype.h" | COMMENT |
| LOW | test/gtest/int128.cpp | 1 | // Copyright 2026 WebAssembly Community Group participants | COMMENT |
| LOW | test/gtest/principal-type.cpp | 261 | // Forward match a concrete nullability. | COMMENT |
| 1645 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | scripts/monitor_fuzz.py | 72 | except Exception: | CODE |
| HIGH | scripts/monitor_fuzz.py | 286 | except ProcessLookupError: | CODE |
| HIGH | scripts/monitor_fuzz.py | 351 | except subprocess.TimeoutExpired: | CODE |
| HIGH | scripts/monitor_fuzz.py | 297 | except ProcessLookupError: | CODE |
| HIGH | scripts/fuzz_opt.py | 497 | except Exception: | CODE |
| HIGH | scripts/fuzz_opt.py | 1185 | except ValueError: | CODE |
| HIGH | scripts/experimental/coverage-diff.py | 436 | except OSError: | CODE |
| HIGH | scripts/experimental/coverage-diff.py | 461 | except OSError: | CODE |
| HIGH | scripts/test/support.py | 34 | except Exception: | CODE |
| HIGH | scripts/test/shared.py | 360 | except OSError: | CODE |
| HIGH | scripts/test/shared.py | 366 | except OSError: | CODE |
| HIGH | scripts/test/shared.py | 380 | except OSError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | third_party/llvm-project/include/llvm/ADT/Hashing.h | 614 | /// behavior in the presence of integral promotions. Essentially, | COMMENT |
| MEDIUM | …ird_party/llvm-project/include/llvm/Support/Compiler.h | 549 | /// However, this doesn't make any attempt to leverage the fancier techniques | COMMENT |
| MEDIUM | …d_party/llvm-project/include/llvm/Support/MathExtras.h | 683 | /// Essentially, it is a floor operation across the domain of powers of two. | COMMENT |
| MEDIUM | …d_party/llvm-project/include/llvm/Support/MathExtras.h | 690 | /// Essentially, it is a ceil operation across the domain of powers of two. | COMMENT |
| MEDIUM | …rty/llvm-project/include/llvm/Support/FormatVariadic.h | 71 | // Essentially, we are converting a std::tuple<Derived<Ts...>> to a | COMMENT |
| MEDIUM | scripts/fuzz_opt.py | 1150 | # replace null with 0. the fuzzing harness passes in nulls instead | COMMENT |
| MEDIUM | scripts/fuzz_opt.py | 1159 | # input is valid, but as we said, the fuzz harness passes in a value | COMMENT |
| LOW | scripts/clusterfuzz/run.py | 123 | # not looking for wasm-opt issues there, and just use it to generate testcases | COMMENT |
| MEDIUM | src/ir/module-utils.cpp | 1044 | // we could try to do something more robust like take the minimum index of all | COMMENT |
| MEDIUM | src/ir/effects.h | 64 | // Definitely branches out of this expression, or does a return, etc. | COMMENT |
| MEDIUM | src/ir/possible-contents.cpp | 1605 | // The information we collect and utilize as we operate in parallel in each | COMMENT |
| MEDIUM | src/passes/Precompute.cpp | 327 | // When propagating, we can utilize the graph of local operations to | COMMENT |
| MEDIUM | src/passes/SSAify.cpp | 28 | // can utilize | COMMENT |
| MEDIUM | src/passes/RemoveUnusedBrs.cpp | 948 | // Definitely not taken. | COMMENT |
| MEDIUM | src/passes/RemoveUnusedBrs.cpp | 954 | // Definitely taken. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/unit/test_asyncify.py | 66 | def test_asyncify_onlylist_and_other(self): | CODE |
| LOW | test/unit/test_asyncify.py | 79 | def test_asyncify_addlist_and_removelist(self): | CODE |
| LOW | test/unit/test_asyncify.py | 101 | def test_asyncify_too_many_locals(self): | CODE |
| LOW | test/unit/test_compact_imports.py | 24 | def test_shared_module_encoding(self): | CODE |
| LOW | test/unit/test_compact_imports.py | 35 | def test_disabled_compact_imports(self): | CODE |
| LOW | test/unit/test_compact_imports.py | 47 | def test_mixed_import_patterns(self): | CODE |
| LOW | test/unit/test_compact_imports.py | 65 | def test_identical_imports_size_reduction(self): | CODE |
| LOW | test/unit/test_warnings.py | 21 | def test_quiet_suppresses_warnings(self): | CODE |
| LOW | test/unit/test_warnings.py | 29 | def test_no_warn_on_print_function_map(self): | CODE |
| LOW | test/unit/test_features.py | 50 | def check_multivalue_exception_handling(self, module, error): | CODE |
| LOW | test/unit/test_features.py | 183 | def test_reference_types_externref(self): | STRING |
| LOW | test/unit/test_features.py | 317 | def test_call_indirect_overlong(self): | STRING |
| LOW⚡ | test/unit/test_features.py | 406 | def test_superset_even_without_detect_features(self): | STRING |
| LOW⚡ | test/unit/test_features.py | 414 | def test_superset_with_detect_features(self): | STRING |
| LOW⚡ | test/unit/test_features.py | 420 | def test_explicit_detect_features(self): | STRING |
| LOW | test/unit/test_tail_call_type.py | 28 | def test_return_call_indirect(self): | STRING |
| LOW | test/unit/test_dwarf.py | 11 | def test_overlapping_inline_siblings(self): | CODE |
| LOW | test/unit/test_dwarf.py | 50 | def test_zero_start_range_offset(self): | CODE |
| LOW | test/unit/test_dwarf.py | 111 | def test_missing_start_with_mapped_end(self): | CODE |
| LOW | test/unit/test_dwarf.py | 168 | def test_dwarf_incompatibility(self): | CODE |
| LOW | test/unit/test_dwarf.py | 179 | def test_strip_dwarf_and_opts(self): | CODE |
| LOW | test/unit/test_cluster_fuzz.py | 482 | def test_zzz_bundle_build_dir(self): | CODE |
| LOW | test/unit/test_memory_packing.py | 34 | def test_large_segment_unmergeable(self): | STRING |
| LOW | test/unit/test_only_imported_memory.py | 5 | def test_only_imported_memory(self): | CODE |
| LOW | test/unit/utils.py | 43 | def assert_equal_ignoring_line_endings(self, left, right): | CODE |
| LOW | test/unit/test_fuzz_stats.py | 69 | def test_stats_file_updated_across_invocations(self): | CODE |
| LOW | test/unit/test_fuzz_stats.py | 140 | def test_stats_not_created_when_disabled(self): | CODE |
| LOW | scripts/fuzz_opt.py | 265 | def init_important_initial_contents(): | CODE |
| LOW | scripts/fuzz_opt.py | 277 | def auto_select_recent_initial_contents(): | CODE |
| LOW | scripts/fuzz_opt.py | 456 | def get_export_from_export_line(export_line): | CODE |
| LOW | scripts/fuzz_opt.py | 1341 | def wasm_notices_export_changes(wasm): | CODE |
| LOW | scripts/experimental/coverage-diff.py | 200 | def check_build_dir_coverage_config(build_dir: str) -> tuple[bool, str, dict[str, str]]: | CODE |
| LOW | scripts/experimental/coverage-diff.py | 312 | def print_missing_profile_instructions(build_dir: str): | STRING |
| LOW | scripts/experimental/coverage-diff.py | 340 | def find_object_file_for_source(build_dir: str, rel_path: str) -> str | None: | STRING |
| LOW | scripts/experimental/coverage-diff.py | 816 | def populate_regions_and_functions( | CODE |
| LOW | scripts/experimental/coverage-diff.py | 916 | def populate_branches_and_mcdc( | CODE |
| LOW | scripts/test/finalize.py | 49 | def test_wasm_emscripten_finalize(): | CODE |
| LOW | scripts/test/shared.py | 167 | def run_test_with_wrapped_stdout(test): | CODE |
| LOW | scripts/test/shared.py | 373 | def remove_readonly_and_try_again(func, path, exc_info): | CODE |
| LOW | scripts/test/shared.py | 424 | def fail_if_not_identical_to_file(actual, expected_file): | CODE |
| LOW | scripts/clusterfuzz/run.py | 117 | def get_random_initial_content(): | CODE |
| LOW | src/js/binaryen.js-post.js | 3701 | function deriveWrapperInstanceMembers(prototype, staticMembers) { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | check.py | 245 | except Exception as e: | CODE |
| LOW | scripts/fuzz_passes.py | 66 | except Exception as e: | CODE |
| LOW | scripts/fuzz_passes.py | 108 | except Exception: | CODE |
| LOW | scripts/fuzz_passes.py | 135 | except Exception as e: | CODE |
| LOW | scripts/monitor_fuzz.py | 72 | except Exception: | CODE |
| LOW | scripts/monitor_fuzz.py | 113 | except Exception as e: | CODE |
| MEDIUM | scripts/monitor_fuzz.py | 114 | print(f'Error writing to log file: {e}', file=sys.stderr) | CODE |
| MEDIUM | scripts/fuzz_opt.py | 299 | def is_git_repo(): | CODE |
| MEDIUM | scripts/fuzz_opt.py | 2222 | def handle_pair(self, input, before_wasm, after_wasm, opts): | CODE |
| LOW | scripts/fuzz_opt.py | 411 | except Exception: | CODE |
| LOW | scripts/fuzz_opt.py | 428 | except Exception: | CODE |
| LOW | scripts/fuzz_opt.py | 497 | except Exception: | CODE |
| LOW | scripts/fuzz_opt.py | 504 | except Exception as e: | CODE |
| LOW | scripts/fuzz_opt.py | 918 | except Exception as e: | CODE |
| LOW | scripts/fuzz_opt.py | 2225 | except Exception as e: | CODE |
| LOW | scripts/fuzz_opt.py | 2255 | except Exception: | CODE |
| LOW | scripts/fuzz_opt.py | 2636 | except Exception as e: | CODE |
| LOW | scripts/fuzz_opt.py | 2990 | except Exception as e: | STRING |
| LOW | scripts/fuzz_passes_wast.py | 60 | except Exception as e: | CODE |
| LOW | scripts/fuzz_passes_wast.py | 98 | except Exception: | CODE |
| LOW | scripts/fuzz_passes_wast.py | 126 | except Exception as e: | CODE |
| MEDIUM | scripts/fuzz_passes_wast.py | 55 | def run(): | CODE |
| MEDIUM | scripts/experimental/coverage-diff.py | 285 | print(f'Error: Build is not configured for coverage reporting.\n Reason: {reason}\n', file=sys.stderr) | CODE |
| MEDIUM | scripts/experimental/coverage-diff.py | 522 | print(f'Error: Test command failed (exit code {res.returncode}): {display}', file=sys.stderr) | CODE |
| MEDIUM | scripts/experimental/coverage-diff.py | 582 | print(f'Error merging profile data with {llvm_profdata}:\n{res.stderr}', file=sys.stderr) | CODE |
| MEDIUM | scripts/experimental/coverage-diff.py | 654 | print(f'Error running git diff:\n{res.stderr}', file=sys.stderr) | CODE |
| LOW | scripts/test/support.py | 34 | except Exception: | CODE |
| LOW | scripts/test/shared.py | 171 | except Exception as e: | CODE |
| LOW | scripts/test/shared.py | 400 | except Exception as e: | CODE |
| MEDIUM | scripts/test/shared.py | 357 | def delete_from_orbit(filename): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | test/example/stack-utils.cpp | 518 | // ├─────┬─────┐ | COMMENT |
| MEDIUM⚡ | test/example/stack-utils.cpp | 523 | // │ ├─────┐ | COMMENT |
| MEDIUM⚡ | test/example/stack-utils.cpp | 525 | // ret╶─────────┘ | COMMENT |
| MEDIUM⚡ | src/wasm-type.h | 355 | // ╒═════════════╦═│═╤═│═╤═│═╤═│═╤═══════╕ | COMMENT |
| MEDIUM⚡ | src/wasm-type.h | 358 | // ├─────────────╫───┼───┼───┼───┤───────┤ | COMMENT |
| MEDIUM⚡ | src/wasm-type.h | 364 | // ├─ Aliases ───╫───┼───┼───┼───┤───────┤ | COMMENT |
| MEDIUM⚡ | src/wasm-type.h | 373 | // ├─ Compound ──╫───┼───┼───┼───┤───────┤ │ | COMMENT |
| MEDIUM⚡ | src/wasm-type.h | 376 | // └─────────────╨───┴───┴───┴───┴───────┘ | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/unit/test_fuzz_preserve.py | 89 | CODE | |
| LOW | test/unit/test_fuzz_preserve.py | 156 | CODE | |
| LOW | test/unit/test_fuzz_preserve.py | 158 | CODE | |
| LOW | test/lit/lit.cfg.py | 40 | CODE | |
| LOW | third_party/setup.py | 43 | CODE | |
| LOW | scripts/monitor_fuzz.py | 235 | CODE | |
| LOW | scripts/monitor_fuzz.py | 51 | CODE | |
| LOW | scripts/monitor_fuzz.py | 87 | CODE | |
| LOW | scripts/monitor_fuzz.py | 281 | CODE | |
| LOW | scripts/fuzz_opt.py | 152 | CODE | |
| LOW | scripts/fuzz_opt.py | 513 | CODE | |
| LOW | scripts/fuzz_opt.py | 544 | CODE | |
| LOW | scripts/fuzz_opt.py | 1372 | CODE | |
| LOW | scripts/fuzz_opt.py | 2335 | CODE | |
| LOW | scripts/update_lit_checks.py | 138 | CODE | |
| LOW | scripts/update_lit_checks.py | 153 | CODE | |
| LOW | scripts/update_lit_checks.py | 209 | CODE | |
| LOW | scripts/update_lit_checks.py | 251 | CODE | |
| LOW | scripts/update_lit_checks.py | 308 | CODE | |
| LOW | scripts/gen-s-parser.py | 773 | CODE | |
| LOW | scripts/gen-s-parser.py | 808 | CODE | |
| LOW | scripts/update_help_checks.py | 33 | CODE | |
| LOW | scripts/experimental/coverage-diff.py | 152 | CODE | |
| LOW | scripts/experimental/coverage-diff.py | 360 | CODE | |
| LOW | scripts/experimental/coverage-diff.py | 440 | CODE | |
| LOW | scripts/experimental/coverage-diff.py | 600 | CODE | |
| LOW | scripts/experimental/coverage-diff.py | 691 | CODE | |
| LOW | scripts/experimental/coverage-diff.py | 967 | CODE | |
| LOW | scripts/experimental/coverage-diff.py | 1051 | CODE | |
| LOW | scripts/test/wasm2js.py | 138 | CODE | |
| LOW | scripts/test/wasm2js.py | 197 | CODE | |
| LOW | scripts/test/support.py | 24 | CODE | |
| LOW | scripts/test/support.py | 45 | CODE | |
| LOW | scripts/test/shared.py | 158 | CODE | |
| LOW | scripts/test/shared.py | 242 | CODE | |
| LOW | scripts/test/wasm_opt.py | 116 | CODE | |
| LOW | scripts/clusterfuzz/run.py | 288 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/tools/wasm-metadce.cpp | 67 | // TODO: implement this in a safer way, not a string with a magic separator | COMMENT |
| LOW | src/parser/lexer.h | 396 | // TODO: Add error production for out-of-bounds payload. | COMMENT |
| LOW | src/parser/lexer.h | 433 | // TODO: Add error production for out-of-bounds payload. | COMMENT |
| LOW | src/parser/lexer.h | 592 | // TODO: Add error productions for trailing underscore and overflow. | COMMENT |
| LOW | src/parser/lexer.h | 621 | // TODO: Add error productions for trailing underscore and overflow. | COMMENT |
| LOW | src/parser/lexer.h | 666 | // TODO: Add error production for unrecognized hexnum. | COMMENT |
| LOW | src/parser/lexer.h | 686 | // TODO: Add error production for unsigned overflow. | COMMENT |
| LOW | src/parser/lexer.h | 735 | // TODO: Add error production for missing exponent. | COMMENT |
| LOW | src/parser/lexer.h | 761 | // TODO: Add error production for missing exponent. | COMMENT |
| LOW | src/parser/lexer.h | 784 | // TODO: Add error production for malformed NaN payload. | COMMENT |
| LOW | src/parser/lexer.h | 851 | // TODO: Add error production for unterminated string. | COMMENT |
| LOW⚡ | src/parser/lexer.h | 895 | // TODO: Add error production for malformed unicode escapes. | COMMENT |
| LOW⚡ | src/parser/lexer.h | 900 | // TODO: Add error production for malformed unicode escapes. | COMMENT |
| LOW⚡ | src/parser/lexer.h | 905 | // TODO: Add error production for invalid unicode values. | COMMENT |
| LOW | src/parser/lexer.h | 918 | // TODO: Add error production for unrecognized escape sequence. | COMMENT |
| LOW | src/parser/lexer.h | 934 | // TODO: Add error production for unescaped control characters. | COMMENT |
| LOW | src/parser/lexer.h | 1064 | // TODO: Add error production for non-terminated block comment. | COMMENT |
| LOW | src/parser/context-decls.cpp | 38 | // TODO: Fix error location | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/fuzz_opt.py | 1943 | # In both cases, make sure to copy the files to a saved location first (do not | COMMENT |
| LOW | scripts/test/shared.py | 468 | # delete the old file, make sure you rename the corresponding .wast.log file in | COMMENT |
| MEDIUM | src/wasm/wasm-debug.cpp | 1364 | // can emit a new proper base (as mentioned earlier, the original base may | COMMENT |
| MEDIUM | src/passes/DeadArgumentElimination.cpp | 471 | // need to localize), so this was unprofitable as mentioned earlier. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | scripts/fuzz_opt.py | 1446 | # we want to filter out things like "anyref(null)" or | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/tools/optimization-options.h | 49 | // Information to run a pass, as requested by a commandline flag. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/support/suffix_tree.h | 23 | // In this implementation, a "string" is a vector of unsigned integers. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/fuzz_opt.py | 1339 | # Check if a wasm file would notice normally-unnoticeable changes to exports, | COMMENT |
| LOW | scripts/fuzz_opt.py | 1995 | # Check if we trapped during instantiation. | COMMENT |
| LOW | scripts/bundle_clusterfuzz.py | 81 | # Read the filenames first, as importing |shared| changes the directory. | COMMENT |
| LOW | scripts/experimental/coverage-diff.py | 612 | # Check if there are uncommitted C/C++ changes against HEAD first. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | test/wasm2js/func_ptrs.2asm.js | 32 | print($0 | 0); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/passes/Heap2Local.cpp | 245 | // queue), and we need to check if it is ok to be at the parent, and to flow | COMMENT |
| LOW | src/passes/Heap2Local.cpp | 1515 | // As with RefTest, we need to check if the cast succeeds with the array | COMMENT |
| LOW | src/passes/OptimizeCasts.cpp | 212 | // As in flushRefCastResult, we need to check if the cast is already at | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | third_party/setup.py | 17 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/ir/module-splitting.h | 72 | Name placeholderNamespacePrefix = "placeholder"; | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/fuzz_opt.py | 604 | CODE |