AI Slop Code Risk Monitor

melonjs/melonJS

SlopCodeMonitor badge for melonjs/melonJS Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

A modern & fully featured HTML5 game engine (2D & 3D) for JavaScript/TypeScript, with WebGL/WebGPU rendering, built-in physics, Tiled map & glTF support and WebAudio.

2.6 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for melonjs/melonJS, a JavaScript project with 6,429 GitHub stars. SynthScan examined 457,124 lines of code across 1199 source files, recording 644 pattern matches distributed across 9 syntactic categories. The legacy adjusted pattern signal is 2.6 (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.

2.6
Adjusted Signal
2.6
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
6.4K
Stars
JavaScript
Language
457.1K
Lines of Code
1.2K
Files
644
Pattern Hits
2026-10-31
Scan Date
0.00
HC Hit Rate

Risk Review · Payload v1

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.

Cognitive Ownership Risk 4.6/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 397 finding(s).

Hallucinated Dependency & Supply Chain Risk 0.4/100 · LOW

Are imports declared and package/API names verified? 8 finding(s).

Agent Over-Engineering Ratio 7.8/100 · LOW

Are wrappers, guards, and repeated structures necessary? 254 finding(s).

PR Review Velocity Impact 12.2/100 · LOW

Which changes need focused human review? 644 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

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.

Severity Breakdown

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.

CRITICAL 3HIGH 0MEDIUM 258LOW 383

Directory Score Breakdown

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.

Pattern Findings

The scanner identified 644 distinct pattern matches across 9 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.

Decorative Section Separators239 hits · 728 pts
SeverityFileLineSnippetContext
MEDIUMpackages/melonjs/tests/guid-pair-identity.spec.js58 // ── the generator ───────────────────────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/guid-pair-identity.spec.js95 // ── a Tiled-style level load ────────────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/guid-pair-identity.spec.js138 // ── a manually populated world ──────────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/guid-pair-identity.spec.js173 // ── what the bug actually broke ─────────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/bitmaptextdata.spec.js92// ── shared battery: the SAME assertions through both parsers ──────────────────COMMENT
MEDIUMpackages/melonjs/tests/bitmaptextdata.spec.js259// ── XML-only quirks (the text format is positional, so these don't apply) ─────COMMENT
MEDIUMpackages/melonjs/tests/mesh_texture_groups.spec.js97 // ── resolution ──────────────────────────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/mesh_texture_groups.spec.js210 // ── the WebGL draw ──────────────────────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/mesh_texture_groups.spec.js340 // ── the WebGL accumulated (Camera2d) draw ───────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/mesh_texture_groups.spec.js390 // ── review-hardening: cases the first cut got wrong (#1573) ─────────COMMENT
MEDIUMpackages/melonjs/tests/mesh_texture_groups.spec.js390 // ── review-hardening: cases the first cut got wrong (#1573) ─────────COMMENT
MEDIUMpackages/melonjs/tests/mesh_texture_groups.spec.js600 // ── per-material normal maps (#1574) ────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/mesh_texture_groups.spec.js600 // ── per-material normal maps (#1574) ────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/color.spec.ts242 // accepted) ─────────────────────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/texture-filter.spec.js56 // ── resolver truth table (backend-neutral mode) ────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/texture-filter.spec.js97 // ── GL enum mapping ────────────────────────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/texture-filter.spec.js109 // ── runtime setter, decoupled from setAntiAlias ────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/texture-filter.spec.js139 // ── per-mesh override precedence ───────────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/webgl_mesh_depth.spec.js145 // ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/webgl_mesh_depth.spec.js147 // ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/webgl_mesh_depth.spec.js256 // ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/webgl_mesh_depth.spec.js258 // ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/webgl_mesh_depth.spec.js360 // ── ADVERSARIAL: depth accumulation across many meshes ──────────────COMMENT
MEDIUMpackages/melonjs/tests/webgl_mesh_depth.spec.js430 // ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/webgl_mesh_depth.spec.js432 // ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/webgl_mesh_depth.spec.js591 // ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/webgl_mesh_depth.spec.js593 // ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/obj_normals.spec.js157 // ── review-hardening: cases the first cut got wrong (#1572) ─────────COMMENT
MEDIUMpackages/melonjs/tests/obj_normals.spec.js157 // ── review-hardening: cases the first cut got wrong (#1572) ─────────COMMENT
MEDIUMpackages/melonjs/tests/nineslicesprite.spec.js86 // ── construction ─────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/nineslicesprite.spec.js128 // ── static draw geometry ───────────────────────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/nineslicesprite.spec.js240 // ── adversarial ────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/vertex.spec.js11// ── normalizeVertices ───────────────────────────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/vertex.spec.js180// ── projectVertices ─────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/vertex.spec.js391// ── computeVertexNormal ─────────────────────────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/vertex.spec.js591// ── convexHull ──────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/vertex.spec.js732// ── ribbonSides ─────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/frameAnimation.spec.js74 // ── addAnimation + animationspeed defaulting ─────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/frameAnimation.spec.js110 // ── selection + query accessors ──────────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/frameAnimation.spec.js152 // ── update timing (the core stepping) ────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/frameAnimation.spec.js257 // ── onFrame ──────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/frameAnimation.spec.js352 // ── legacy resetAnim forms (back-compat) ─────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/frameAnimation.spec.js372 // ── pause / play / stop + animationpause accessor ────────────────────COMMENT
MEDIUMpackages/melonjs/tests/frameAnimation.spec.js414 // ── reverseAnimation + dt accessor ───────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/frameAnimation.spec.js443 // ── adversarial ──────────────────────────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/frameAnimation.spec.js462 // ── single-frame animations ──────────────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/ui.spec.js32 // ─── UIBaseElement ───────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/ui.spec.js149 // ─── UISpriteElement ─────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/ui.spec.js253 // ─── UITextButton ─────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/ui.spec.js337 // ─── Real draw pass ──────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/transparent_queue.spec.js616 // ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/transparent_queue.spec.js620 // ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/transparent_queue.spec.js1203 // ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/transparent_queue.spec.js1211 // ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/sprite3d.spec.js634 // ── adversarial: flip × texture atlas (trimmed + rotated) ───────────────COMMENT
MEDIUMpackages/melonjs/tests/gltf.spec.js32// ── GLB container builders ──────────────────────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/gltf.spec.js129// ── Parser ──────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/gltf.spec.js271// ── Adversarial / malformed-input robustness ─────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/gltf.spec.js382// ── Normals & lights ─────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/melonjs/tests/gltf.spec.js592// ── Materials: baseColorFactor + vertex colors (COLOR_0) ──────────────────────COMMENT
179 more matches not shown…
Over-Commented Block359 hits · 350 pts
SeverityFileLineSnippetContext
LOWpackages/matter-adapter/tests/parity.spec.ts121 beforeEach(() => {COMMENT
LOWpackages/matter-adapter/tests/parity.spec.ts201 maxY = Math.max(maxY, p.y + poly.pos.y);COMMENT
LOWpackages/matter-adapter/tests/parity.spec.ts281 describe("anchorPoint and collision alignment", () => {COMMENT
LOWpackages/matter-adapter/src/index.ts421 }COMMENT
LOWpackages/matter-adapter/src/index.ts561 Matter.Composite.add(this.engine.world, body);COMMENT
LOWpackages/matter-adapter/src/index.ts581 // system translation living on the adapter where it belongs.COMMENT
LOWpackages/matter-adapter/src/index.ts801 private invalidateContactsFor(body: Matter.Body): void {COMMENT
LOWpackages/matter-adapter/src/index.ts961 // shapes. `part.vertices` are world-space and already carry the body'sCOMMENT
LOWpackages/matter-adapter/src/index.ts1181 // The supersedes rule (modern `onCollisionActive` wins over legacyCOMMENT
LOWpackages/matter-adapter/src/index.ts1201 // are not in `renderableMap` (only the parent is), so looking theCOMMENT
LOWpackages/matter-adapter/src/index.ts1221 // For END phase: dispatch to whichever partner is still attachedCOMMENT
LOWpackages/matter-adapter/src/index.ts1481 // the vertices to land where they were authored. The arithmeticCOMMENT
LOWpackages/debug-plugin/src/index.js141 this._syncPosition();COMMENT
LOWpackages/debug-plugin/src/patches.js401 // Under a Camera3d the renderer is mid-perspective-projection, so theCOMMENT
LOWpackages/melonjs/vitest.config.ts21}COMMENT
LOWpackages/melonjs/vitest.config.ts41 // Several specs create a WebGL context in `beforeAll`. On a CICOMMENT
LOWpackages/melonjs/vitest.config.ts61 // a context can sit past the timeout above.COMMENT
LOWpackages/melonjs/tests/webgl_vao_teardown.spec.js101 // still idempotent: a second teardown on the now-lost context mustCOMMENT
LOWpackages/melonjs/tests/clipRect.spec.js221COMMENT
LOWpackages/melonjs/tests/trigger_level_change.spec.js241 loadOptions.push(settings);COMMENT
LOWpackages/melonjs/tests/trigger_level_change.spec.js261 // outright. Through `update(dt)` rather than `_onTick(timestamp)`:COMMENT
LOWpackages/melonjs/tests/eye_position.spec.js301 // batcher, and a uniform lives on its program. The batcher skips aCOMMENT
LOW…ages/melonjs/tests/createPattern_repeat_parity.spec.js401 it("cache.get(image, {framewidth, frameheight}) with multiple atlases under one image", (ctx) => {COMMENT
LOWpackages/melonjs/tests/vertexBuffer.spec.js181 // Uint32 packing is reinterpreted as Float32 — namely any color whoseCOMMENT
LOWpackages/melonjs/tests/audio-backend.spec.js761 // play, then `loop(true, id)` on the id it returned. There are twoCOMMENT
LOWpackages/melonjs/tests/audio-backend.spec.js1061 // THE reported bug, from the engine's side. `_autoSuspend` moves theCOMMENT
LOWpackages/melonjs/tests/camera3d_integration.spec.js361 // didn't override the camera class. The bug surfaced in real apps viaCOMMENT
LOWpackages/melonjs/tests/camera3d_integration.spec.js421 expect(app.world.sortOn, `stage[${i}]`).toBe(expected[i]);COMMENT
LOWpackages/melonjs/tests/platform.spec.ts101 // iPadOS 13 (Sept 2019) made Safari ship the desktop Mac UA byCOMMENT
LOWpackages/melonjs/tests/builtin-resting.spec.js421COMMENT
LOWpackages/melonjs/tests/webgl_mesh_depth.spec.js301 // 2. green mesh at z=-10 (farther, drawn second — should beCOMMENT
LOWpackages/melonjs/tests/webgl_mesh_depth.spec.js361 // Each drawMesh flushes immediately (separate draw call), so inter-meshCOMMENT
LOWpackages/melonjs/tests/webgl_mesh_depth.spec.js421 // must paint over the platform regardless of order.COMMENT
LOWpackages/melonjs/tests/lights.spec.js1901 // shader that `WebGLRenderer.drawLight` happens to use for Light2d.COMMENT
LOWpackages/melonjs/tests/lights.spec.js1961 //COMMENT
LOWpackages/melonjs/tests/lights.spec.js2061 // Lights 2-N hit the same shader and accumulate withoutCOMMENT
LOWpackages/melonjs/tests/webgl_mesh_fog.spec.js981 // The placement uniforms live on the PROGRAM, so a swapped shaderCOMMENT
LOW…ages/melonjs/tests/builtin-adapter-adversarial.spec.js701 // viewport, so we opt into always-update.COMMENT
LOW…ages/melonjs/tests/builtin-adapter-adversarial.spec.js821 it("Quirk #6: collision callbacks fire INLINE during step — handler-side vel mutation on a peer is integrated within tCOMMENT
LOW…ages/melonjs/tests/builtin-adapter-adversarial.spec.js1101COMMENT
LOWpackages/melonjs/tests/lit_quad_specular.spec.js181 // a highlight is light reflected OFF the surface, not theCOMMENT
LOWpackages/melonjs/tests/prewarm.spec.js121 it("warms again once the context is restored", async (ctx) => {COMMENT
LOWpackages/melonjs/tests/emitter.spec.js261 // ---------------------------------------------------------------------COMMENT
LOWpackages/melonjs/tests/camera3d.spec.js201 5,COMMENT
LOWpackages/melonjs/tests/camera3d.spec.js661 // local pos.z), so a child inside a container that itself hasCOMMENT
LOWpackages/melonjs/tests/builtin-line-collision.spec.js121 expect(box.pos.x).toBeGreaterThan(startX + 50);COMMENT
LOWpackages/melonjs/tests/transparent_queue.spec.js241 // camera's view — one scaled container makes the upper 3x3COMMENT
LOWpackages/melonjs/tests/transparent_queue.spec.js901 // vertices sit at view-space z = 0: the camera itself. The divideCOMMENT
LOWpackages/melonjs/tests/vector2d.spec.ts401 // depends on which components are zero, and `atan2` reads thatCOMMENT
LOWpackages/melonjs/tests/container.spec.js881 // (= world 110 and 90). Camera cached at (0, 0, 0) — siblings'COMMENT
LOWpackages/melonjs/tests/container.spec.js1521 expect(child.visibleInAllCameras).toEqual(true);COMMENT
LOWpackages/melonjs/tests/depth.spec.js461 });COMMENT
LOWpackages/melonjs/tests/audio-preload-regression.spec.js161 }COMMENT
LOWpackages/melonjs/tests/texture.spec.js401 // start from a drained unit pool: the 50 sibling tests above canCOMMENT
LOWpackages/melonjs/tests/mesh.spec.js1141 // transform before projection. With width=60 fromCOMMENT
LOWpackages/melonjs/tests/hdr-render-target.spec.js161 // `OES_texture_half_float_linear`, which the Khronos registry marksCOMMENT
LOWpackages/melonjs/tests/hdr-render-target.spec.js801COMMENT
LOWpackages/melonjs/tests/asset-paths-with-spaces.spec.js61 ["binary", "data/misc/plain.bin", "data/misc/name with space.bin"],COMMENT
LOWpackages/melonjs/tests/webgl_required_check.spec.js41 };COMMENT
LOWpackages/melonjs/tests/webgl_mesh_anchor.spec.js261 // offset (≈ -2000 px) flings it off-screen, leaving the center red.COMMENT
299 more matches not shown…
AI Slop Vocabulary11 hits · 31 pts
SeverityFileLineSnippetContext
MEDIUMpackages/matter-adapter/src/index.ts1046 // robust than reading the normal sign.COMMENT
MEDIUMpackages/melonjs/src/video/texture/noise_texture2d.js82 * // a seamless water normal map fed to a lit spriteCOMMENT
MEDIUMpackages/melonjs/src/video/effects/shadereffect.js572 * // a shader that scrolls a static seamless noise texture over timeCOMMENT
MEDIUMpackages/melonjs/src/physics/builtin/raycast.ts289 // We still check to be robust.COMMENT
MEDIUM…ges/examples/src/examples/heatHaze/ExampleHeatHaze.tsx40uniform sampler2D uNoise; // seamless flow mapCODE
MEDIUM…s/examples/src/examples/nightcity/ExampleNightCity.tsx248 // so the aim returns to its start as the loop wraps (seamless).COMMENT
MEDIUM…es/src/examples/earthDefender/ExampleEarthDefender.tsx255 // fallback and the gapless one, which a seamless loop wants.COMMENT
MEDIUM…ages/examples/src/examples/earthDefender/fx/scenery.ts86 // is a texel-aligned copy of a seamless tile; as a grid of separateCOMMENT
MEDIUM…ges/examples/src/examples/aquarium/ExampleAquarium.tsx71uniform sampler2D uNoise; // static seamless flow mapCODE
MEDIUM…ges/examples/src/examples/aquarium/ExampleAquarium.tsx237 // static seamless noise flow map (baked once; scrolled on the GPU)COMMENT
MEDIUMpackages/planck-adapter/src/index.ts1114 // comparing the other body's vertical position is more robust.COMMENT
Hallucination Indicators3 hits · 30 pts
SeverityFileLineSnippetContext
CRITICALpackages/melonjs/tests/ground_shadow.spec.js338 const before = renderer._shadowQuads.unlit._modelMatrix.val.slice();CODE
CRITICALpackages/melonjs/tests/ground_shadow.spec.js367 const before = renderer._shadowQuads.unlit._modelMatrix.val.slice();CODE
CRITICALpackages/melonjs/tests/ground_shadow.spec.js2661 const before = renderer._shadowQuads.unlit._modelMatrix.val.slice();CODE
Modern AI Meta-Vocabulary8 hits · 23 pts
SeverityFileLineSnippetContext
MEDIUMpackages/melonjs/tests/blend-modes-conformance.spec.js137 // the scaffold places its builtin bindings ABOVE the user's, so theCOMMENT
MEDIUMpackages/melonjs/tests/mesh_hosted_effect.spec.js189 // the WGSL module has no module-scope equivalent (the quad scaffoldCOMMENT
MEDIUMpackages/melonjs/tests/lighting_block_wiring.spec.js354 // The scaffold's normal map is flat +Z under a light directly overhead, soCOMMENT
MEDIUMpackages/melonjs/src/video/webgpu/pipeline/cache.js315 // same group-1 shape as the effect scaffoldCOMMENT
MEDIUMpackages/melonjs/src/video/effects/shadereffect.js417 // which the sprite scaffold does not read)COMMENT
MEDIUMpackages/melonjs/src/video/effects/shadereffect.js909 // size_img @2, offset @4 — the scaffold's MEBuiltins layout);COMMENT
MEDIUMpackages/melonjs/src/video/effects/mesh_splice.js108 // equivalent — the quad scaffold shims one in as a `var<private>` — so aCOMMENT
MEDIUMpackages/melonjs/src/video/effects/wgsl/scaffold.js94 "// ---- melonJS effect scaffold ----",CODE
Hyper-Verbose Identifiers15 hits · 15 pts
SeverityFileLineSnippetContext
LOWscripts/release.ts199function assertPluginManifestVersion(version: string) {CODE
LOWpackages/melonjs/tests/tmxtileset.spec.js946 function makeCollectionWithSubRect(tileData) {CODE
LOW…es/melonjs/src/video/webgl/shaders/multitexture-lit.js70export function buildLitMultiTextureFragment(maxTextures) {CODE
LOW…ckages/melonjs/src/video/webgl/shaders/multitexture.js14export function buildMultiTextureFragment(maxTextures) {CODE
LOWpackages/melonjs/src/video/webgl/lighting/pack.ts27export function createLightUniformScratch(): LightUniformScratch {CODE
LOWpackages/melonjs/src/video/effects/local_space.js95export function localVertexDeclarationsGLSL(builtins) {CODE
LOWpackages/melonjs/src/video/effects/local_space.js118export function localVertexStatementsGLSL(builtins) {CODE
LOWpackages/melonjs/src/video/effects/local_space.js192export function localVertexStatementsWGSL(builtins) {CODE
LOWpackages/melonjs/src/particles/emitter.ts45function createDefaultParticleTexture(CODE
LOWpackages/melonjs/src/loader/parsers/pbr.ts86export function specularFromMetallicRoughness(CODE
LOWpackages/melonjs/src/geometries/roundrect.ts62 function setOrPush(x: number, y: number) {CODE
LOWpackages/melonjs/src/geometries/toarccanvas.ts96export function endpointToCenterParameterization(CODE
LOWpackages/melonjs/src/level/tiled/TMXObjectFactory.js164export function registerTiledObjectFactory(type, factory) {CODE
LOWpackages/melonjs/src/level/tiled/TMXObjectFactory.js271export function registerBuiltinTiledClass(name, Constructor) {CODE
LOWpackages/examples/src/examples/whac-a-mole/effects.ts33export function attachChromaticAberration(CODE
Fake / Example Data5 hits · 5 pts
SeverityFileLineSnippetContext
LOWpackages/melonjs/tests/plugin.spec.js20 this.name = "John Doe";CODE
LOWpackages/melonjs/tests/bughunt-renderables.spec.js285 text: "placeholder",CODE
LOWpackages/melonjs/tests/bughunt-renderables.spec.js296 text: "placeholder",CODE
LOWpackages/melonjs/tests/font.spec.js142 "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magnaCODE
LOWpackages/melonjs/tests/font.spec.js142 "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magnaCODE
Verbosity Indicators2 hits · 4 pts
SeverityFileLineSnippetContext
LOW⚡…ages/melonjs/tests/createPattern_repeat_parity.spec.js161 // Step 1: a sprite-like atlas allocates a unit for (source, no-repeat)COMMENT
LOW⚡…ages/melonjs/tests/createPattern_repeat_parity.spec.js165 // Step 2: a pattern allocates a separate unit for (source, repeat-x)COMMENT
Structural Annotation Overuse2 hits · 4 pts
SeverityFileLineSnippetContext
LOW⚡…ages/melonjs/tests/createPattern_repeat_parity.spec.js161 // Step 1: a sprite-like atlas allocates a unit for (source, no-repeat)COMMENT
LOW⚡…ages/melonjs/tests/createPattern_repeat_parity.spec.js165 // Step 2: a pattern allocates a separate unit for (source, repeat-x)COMMENT