Powerful web graphics runtime built on WebGL, WebGPU, WebXR and glTF
This report summarizes scanner evidence for playcanvas/engine, a JavaScript project with 17,168 GitHub stars. SynthScan examined 350,115 lines of code across 1745 source files, recording 336 pattern matches distributed across 10 syntactic categories. The legacy adjusted pattern signal is 2.0 (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? 296 finding(s).
Are imports declared and package/API names verified? 40 finding(s).
Are wrappers, guards, and repeated structures necessary? 30 finding(s).
Which changes need focused human review? 336 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 336 distinct pattern matches across 10 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 |
|---|---|---|---|---|
| CRITICAL | src/framework/app-base.js | 475 | * this.app.systems.rigidbody.gravity.set(0, 0, 0); | COMMENT |
| CRITICAL | src/framework/anim/binder/default-anim-binder.js | 130 | const textureAsset = this.animComponent.system.app.assets.get(value[0]); | CODE |
| CRITICAL | src/framework/components/particle-system/component.js | 1804 | const layer = this.system.app.scene.layers.getLayerById(oldLayers[i]); | CODE |
| CRITICAL | src/framework/components/particle-system/component.js | 1810 | const layer = this.system.app.scene.layers.getLayerById(arg[i]); | CODE |
| CRITICAL | src/framework/components/particle-system/component.js | 1903 | const layer = this.system.app.scene.layers.getLayerById(this._layers[i]); | CODE |
| CRITICAL | src/framework/components/particle-system/component.js | 1913 | const layer = this.system.app.scene.layers.getLayerById(this._layers[i]); | CODE |
| CRITICAL | src/framework/components/particle-system/component.js | 2125 | if (!depthLayer) depthLayer = this.system.app.scene.layers.getLayerById(LAYERID_DEPTH); | CODE |
| CRITICAL | src/framework/components/gsplat/component.js | 954 | const scopeId = this.system.app.graphicsDevice.scope.resolve(name); | CODE |
| CRITICAL | src/framework/components/camera/component.js | 1229 | const depthLayer = this.system.app.scene.layers.getLayerById(LAYERID_DEPTH); | CODE |
| CRITICAL | src/framework/components/camera/component.js | 1259 | this.system.app.scene.layers.markDirty(); | CODE |
| CRITICAL | src/framework/components/camera/component.js | 1278 | this.system.app.scene.layers.markDirty(); | CODE |
| CRITICAL | src/framework/components/camera/component.js | 1362 | const layer = this.system.app.scene.layers.getLayerById(layers[i]); | CODE |
| CRITICAL | src/framework/components/camera/component.js | 1373 | const layer = this.system.app.scene.layers.getLayerById(layers[i]); | CODE |
| CRITICAL | src/framework/components/element/component.js | 724 | const layer = this.system.app.scene.layers.getLayerById(this._layers[i]); | CODE |
| CRITICAL | src/framework/components/element/component.js | 740 | const layer = this.system.app.scene.layers.getLayerById(this._layers[i]); | CODE |
| CRITICAL | src/framework/components/element/component.js | 2925 | const layer = this.system.app.scene.layers.getLayerById(this.layers[i]); | CODE |
| CRITICAL | src/framework/components/element/component.js | 2937 | const layer = this.system.app.scene.layers.getLayerById(this.layers[i]); | CODE |
| CRITICAL | src/framework/components/element/text-element.js | 406 | const rtlReorderFunc = this._system.app.systems.element.getRtlReorder(); | CODE |
| CRITICAL | src/framework/components/joint/component.js | 1251 | this.system.app.systems.rigidbody.physicsWorld.destroyJoint(joint); | CODE |
| CRITICAL | src/framework/components/model/component.js | 476 | const layer = this.system.app.scene.layers.getLayerById(this.layers[i]); | CODE |
| CRITICAL | src/framework/components/sprite/component.js | 844 | const layer = this.system.app.scene.layers.getLayerById(this._layers[i]); | CODE |
| CRITICAL | src/framework/components/sprite/component.js | 860 | const layer = this.system.app.scene.layers.getLayerById(this._layers[i]); | CODE |
| CRITICAL | …c/framework/components/sprite/sprite-animation-clip.js | 370 | this._component.system.app.assets.off(`add:${asset.id}`, this._onSpriteAssetAdded, this); | CODE |
| CRITICAL | …c/framework/components/sprite/sprite-animation-clip.js | 384 | this._component.system.app.assets.load(asset); | CODE |
| CRITICAL | …c/framework/components/sprite/sprite-animation-clip.js | 398 | this._component.system.app.assets.off(`load:${asset.data.textureAtlasAsset}`, this._onTextureAtlasLoad, this | CODE |
| CRITICAL | …c/framework/components/sprite/sprite-animation-clip.js | 425 | this._onSpriteAssetLoad(this._component.system.app.assets.get(spriteAsset)); | CODE |
| CRITICAL | src/framework/components/light/component.js | 1262 | const layer = this.system.app.scene.layers.getLayerById(oldValue[i]); | CODE |
| CRITICAL | src/framework/components/light/component.js | 1269 | const layer = this.system.app.scene.layers.getLayerById(value[i]); | CODE |
| CRITICAL | src/framework/components/light/component.js | 1394 | const layer = this.system.app.scene.layers.getLayerById(this._layers[i]); | CODE |
| CRITICAL | src/framework/components/light/component.js | 1404 | const layer = this.system.app.scene.layers.getLayerById(this._layers[i]); | CODE |
| CRITICAL⚡ | src/framework/components/layout-group/component.js | 443 | this.system.app.systems.element.off('add', this._onElementOrLayoutComponentAdd, this); | CODE |
| CRITICAL⚡ | src/framework/components/layout-group/component.js | 444 | this.system.app.systems.element.off('beforeremove', this._onElementOrLayoutComponentRemove, this); | CODE |
| CRITICAL⚡ | src/framework/components/layout-group/component.js | 445 | this.system.app.systems.layoutchild.off('add', this._onElementOrLayoutComponentAdd, this); | CODE |
| CRITICAL⚡ | src/framework/components/layout-group/component.js | 446 | this.system.app.systems.layoutchild.off('beforeremove', this._onElementOrLayoutComponentRemove, this); | CODE |
| CRITICAL | src/framework/components/collision/trigger.js | 75 | this.app.systems.rigidbody.physicsWorld.destroyBody(this.body); | CODE |
| CRITICAL | src/framework/graphics/scene-depth-reader.js | 545 | this.camera.system.app.scene.off(EVENT_POSTRENDER, this._onPostRender); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/README.md | 181 | Examples can also contain comments which allow you to define the default configuration for your examples as well as over | COMMENT |
| LOW | examples/assets/wasm/zstd/zstd.wasm.js | 1 | // Glue script for the ZSTD decompression WebAssembly module (decompression only). | COMMENT |
| LOW | scripts/posteffects/posteffect-bloom.js | 21 | // along a line in both directions from the center. | COMMENT |
| LOW | .github/CONTRIBUTING.md | 261 | // Classes should be CamelCase | COMMENT |
| LOW | .github/CONTRIBUTING.md | 281 | // PosX: 0, | COMMENT |
| LOW | src/framework/anim/state-graph/anim-state-graph.js | 41 | // "states": { | COMMENT |
| LOW | src/framework/anim/state-graph/anim-state-graph.js | 101 | // { | COMMENT |
| LOW | src/framework/parsers/texture/img-alpha-test.js | 1 | import { PIXELFORMAT_RGBA8 } from '../../../platform/graphics/constants.js'; | COMMENT |
| LOW | src/framework/components/element/text-element.js | 381 | // get the list of symbols | COMMENT |
| LOW | …framework/components/layout-group/layout-calculator.js | 301 | // in total in order to fill the available space in the container | COMMENT |
| LOW | src/platform/graphics/shader-chunks/vert/gles3.js | 1 | export default /* glsl */` | COMMENT |
| LOW | src/platform/graphics/shader-chunks/vert/webgpu.js | 1 | export default /* glsl */` | COMMENT |
| LOW | src/platform/graphics/shader-chunks/frag/gles3.js | 41 | #if COLOR_ATTACHMENT_7 | COMMENT |
| LOW | src/platform/graphics/shader-chunks/frag/gles3.js | 61 | #define itexture2D texture | COMMENT |
| LOW | src/platform/graphics/shader-chunks/frag/gles3.js | 81 | #define TEXTURE_PASS(name) name | COMMENT |
| LOW | src/platform/graphics/shader-chunks/frag/webgpu.js | 1 | export default /* glsl */` | COMMENT |
| LOW | src/platform/graphics/shader-chunks/frag/webgpu.js | 21 | #ifndef outType_5 | COMMENT |
| LOW | src/platform/graphics/shader-chunks/frag/webgpu.js | 41 | layout(location = 6) out highp outType_6 pcFragColor6; | COMMENT |
| LOW | src/platform/graphics/shader-chunks/frag/webgpu.js | 61 | #define texture2DProjGradEXT texture2DProjGradEXT_is_no_longer_supported_use_texture2DProjGrad_instead | COMMENT |
| LOW | src/platform/graphics/webgpu/webgpu-render-target.js | 341 | // transient (memoryless) depth - keep the contents on-chip only, which precludes | COMMENT |
| LOW | src/platform/graphics/webgpu/webgpu-render-target.js | 541 | } | COMMENT |
| LOW | src/platform/graphics/webgpu/webgpu-query-set.js | 121 | // Frame GPU time is reported as the span from the earliest begin to the latest end | COMMENT |
| LOW | src/platform/graphics/webgpu/webgpu-xr-bridge.js | 101 | // the layer is created without a depthStencilFormat, so per the WebXR/WebGPU binding | COMMENT |
| LOW | …atform/graphics/webgpu/webgpu-shader-processor-wgsl.js | 301 | // var shadowMap : texture_depth_2d; | COMMENT |
| LOW | src/scene/light.js | 1221 | COMMENT | |
| LOW | src/scene/materials/standard-material-parameters.js | 161 | // forceUv1 | COMMENT |
| LOW | src/scene/gsplat-unified/gsplat-projector-constants.js | 1 | // Shared constants for the hybrid gsplat renderer's projection cache. Mirrored into WGSL via | COMMENT |
| LOW | src/scene/gsplat-unified/gsplat-projector-constants.js | 21 | // sizes are unchanged). Only the per-eye screen position is duplicated; everything else is shared | COMMENT |
| LOW | src/scene/gsplat-unified/gsplat-hybrid-renderer.js | 561 | // sort's indirect dispatch args written above (by the interval compaction and projector | COMMENT |
| LOW | src/scene/shader-lib/glsl/chunks/lit/vert/litMain.js | 41 | #ifdef LINEAR_DEPTH | COMMENT |
| LOW | src/scene/shader-lib/glsl/chunks/lit/vert/litMain.js | 101 | vUv0 = uv0; | COMMENT |
| LOW | src/scene/shader-lib/glsl/chunks/lit/vert/litMain.js | 121 | vVertexColor = gammaCorrectInput(vertex_color); | COMMENT |
| LOW | src/scene/shader-lib/glsl/chunks/lit/frag/TBN.js | 1 | export default /* glsl */` | COMMENT |
| LOW | …der-lib/glsl/chunks/lit/frag/debug-process-frontend.js | 1 | export default /* glsl */` | COMMENT |
| LOW | …cene/shader-lib/glsl/chunks/lit/frag/clusteredLight.js | 1 | export default /* glsl */` | COMMENT |
| LOW | src/scene/shader-lib/glsl/chunks/lit/frag/litMain.js | 1 | // main shader of the lit fragment shader | COMMENT |
| LOW | src/scene/shader-lib/glsl/chunks/lit/frag/litMain.js | 21 | #include "frontendCodePS" | COMMENT |
| LOW | …glsl/chunks/lit/frag/pass-forward/litForwardBackend.js | 1 | // backend shader implementing material / lighting for the lit material for forward rendering | COMMENT |
| LOW | …glsl/chunks/lit/frag/pass-forward/litForwardBackend.js | 141 | COMMENT | |
| LOW | …glsl/chunks/lit/frag/pass-forward/litForwardBackend.js | 161 | #endif | COMMENT |
| LOW | …glsl/chunks/lit/frag/pass-forward/litForwardBackend.js | 181 | litArgs_clearcoat_specularity = 1.0; | COMMENT |
| LOW | …glsl/chunks/lit/frag/pass-forward/litForwardBackend.js | 221 | #endif | COMMENT |
| LOW | …glsl/chunks/lit/frag/pass-forward/litForwardBackend.js | 241 | #endif | COMMENT |
| LOW | …glsl/chunks/lit/frag/pass-forward/litForwardBackend.js | 261 | #include "outputAlphaPS" | COMMENT |
| LOW | …ib/glsl/chunks/lit/frag/pass-forward/litForwardMain.js | 21 | #if LIT_NONE_SLICE_MODE == SLICED | COMMENT |
| LOW | …glsl/chunks/lit/frag/pass-forward/litForwardPreCode.js | 1 | // backend shader implementation code which executes prior to the front end code, and contains code | COMMENT |
| LOW | …glsl/chunks/lit/frag/pass-forward/litForwardPreCode.js | 21 | #include "flatNormalPS" | COMMENT |
| LOW | …/chunks/lit/frag/pass-forward/litForwardDeclaration.js | 41 | uniform vec2 ssaoTextureSizeInv; | COMMENT |
| LOW | …/chunks/lit/frag/pass-forward/litForwardDeclaration.js | 61 | float dShadowCatcher = 1.0; | COMMENT |
| LOW | …lsl/chunks/lit/frag/pass-forward/litForwardPostCode.js | 1 | // backend shader implementation code which executes after the front end code. | COMMENT |
| LOW | …lsl/chunks/lit/frag/pass-forward/litForwardPostCode.js | 21 | // fresnel is also needed by refraction | COMMENT |
| LOW | …lsl/chunks/lit/frag/pass-forward/litForwardPostCode.js | 41 | #include "reflectionCubePS" | COMMENT |
| LOW | …lsl/chunks/lit/frag/pass-forward/litForwardPostCode.js | 61 | #include "refractionCubePS" | COMMENT |
| LOW | …lsl/chunks/lit/frag/pass-forward/litForwardPostCode.js | 81 | #endif | COMMENT |
| LOW | …lsl/chunks/lit/frag/pass-forward/litForwardPostCode.js | 101 | #include "reflDirAnisoPS" | COMMENT |
| LOW | …-lib/glsl/chunks/lit/frag/pass-shadow/litShadowMain.js | 21 | #endif | COMMENT |
| LOW | …-lib/glsl/chunks/lit/frag/pass-shadow/litShadowMain.js | 41 | #define MODIFIED_DEPTH | COMMENT |
| LOW | …-lib/glsl/chunks/lit/frag/pass-shadow/litShadowMain.js | 61 | gl_FragColor = vec4(depth, depth*depth, 1.0, 1.0); | COMMENT |
| LOW | …b/glsl/chunks/lit/frag/lighting/lightFunctionShadow.js | 41 | #ifdef LIGHT{i}_SHADOW_SAMPLE_ORTHO | COMMENT |
| LOW | …-lib/glsl/chunks/lit/frag/lighting/lightDeclaration.js | 21 | uniform float light{i}_innerConeAngle; | COMMENT |
| 191 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/iframe/polyfill.js | 8 | function enablePolyfillFunctionCall() { | CODE |
| LOW | examples/assets/wasm/twgsl/twgsl.js | 3 | var Module=typeof Module!="undefined"?Module:{};var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisP | CODE |
| LOW | examples/assets/wasm/draco/draco.js | 22 | )(info)},instantiate:function(binary,info){return{then:function(ok){var module=new WebAssembly.Module(binary);ok({"insta | CODE |
| LOW | examples/assets/wasm/basis/basis.wasm.js | 8 | var Module=moduleArg;var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise((resolve,reject)=>{readyProm | CODE |
| LOW | scripts/spine/playcanvas-spine.4.3.js | 280 | function GeneratorFunctionPrototype() {} | CODE |
| LOW | scripts/spine/playcanvas-spine.4.3.js | 3727 | function TransformConstraintTimeline(frameCount, bezierCount, constraintIndex) { | CODE |
| LOW | scripts/spine/playcanvas-spine.4.3.js | 3858 | function PathConstraintPositionTimeline(frameCount, bezierCount, constraintIndex) { | CODE |
| LOW | scripts/spine/playcanvas-spine.4.3.js | 3878 | function PathConstraintSpacingTimeline(frameCount, bezierCount, constraintIndex) { | CODE |
| LOW | scripts/spine/playcanvas-spine.4.3.js | 3895 | function PathConstraintMixTimeline(frameCount, bezierCount, constraintIndex) { | CODE |
| LOW | scripts/spine/playcanvas-spine.4.3.js | 3986 | function PhysicsConstraintTimeline(frameCount, bezierCount, constraintIndex, property) { | CODE |
| LOW | scripts/spine/playcanvas-spine.4.3.js | 4024 | function PhysicsConstraintInertiaTimeline(frameCount, bezierCount, constraintIndex) { | CODE |
| LOW | scripts/spine/playcanvas-spine.4.3.js | 4047 | function PhysicsConstraintStrengthTimeline(frameCount, bezierCount, constraintIndex) { | CODE |
| LOW | scripts/spine/playcanvas-spine.4.3.js | 4070 | function PhysicsConstraintDampingTimeline(frameCount, bezierCount, constraintIndex) { | CODE |
| LOW | scripts/spine/playcanvas-spine.4.3.js | 4093 | function PhysicsConstraintMassTimeline(frameCount, bezierCount, constraintIndex) { | CODE |
| LOW | scripts/spine/playcanvas-spine.4.3.js | 4116 | function PhysicsConstraintWindTimeline(frameCount, bezierCount, constraintIndex) { | CODE |
| LOW | scripts/spine/playcanvas-spine.4.3.js | 4142 | function PhysicsConstraintGravityTimeline(frameCount, bezierCount, constraintIndex) { | CODE |
| LOW | scripts/spine/playcanvas-spine.4.3.js | 4168 | function PhysicsConstraintMixTimeline(frameCount, bezierCount, constraintIndex) { | CODE |
| LOW | scripts/spine/playcanvas-spine.4.3.js | 4191 | function PhysicsConstraintResetTimeline(frameCount, constraintIndex) { | CODE |
| LOW | scripts/spine/playcanvas-spine.4.3.js | 4949 | value: function clearListenerNotifications() { | CODE |
| LOW | scripts/spine/playcanvas-spine.4.3.js | 5530 | value: function loadTextureAtlasButNoTextures(path) { | CODE |
| LOW | scripts/spine/playcanvas-spine.4.3.js | 5666 | function loadTextureAtlasButNoTexturesAsync(_x5) { | CODE |
| LOW | src/core/string.js | 64 | function numCharsToTakeForNextSymbol(string, index) { | CODE |
| LOW | src/framework/entity.js | 870 | function resolveDuplicatedEntityReferenceProperties(oldSubtreeRoot, oldEntity, newEntity, duplicatedIdsMap) { | CODE |
| LOW | src/framework/components/layout-group/component.js | 18 | function isEnabledAndHasEnabledElement(entity) { | CODE |
| LOW | …framework/components/layout-group/layout-calculator.js | 295 | function stretchSizesToFitContainer(sizesThisLine, idealRequiredSpace, axis) { | CODE |
| LOW | …framework/components/layout-group/layout-calculator.js | 339 | function shrinkSizesToFitContainer(sizesThisLine, idealRequiredSpace, axis) { | CODE |
| LOW | src/framework/physics/ammo/ammo-physics-shape.js | 347 | function releaseUnusedTriMeshShapes(world) { | CODE |
| LOW | src/platform/graphics/blend-state-utils.js | 29 | function getSingleAttachmentBlendState(blendState, attachmentCount) { | CODE |
| LOW | src/scene/renderer/forward-renderer.js | 48 | function vogelDiskPrecalculationSamples(numSamples) { | CODE |
| LOW | src/scene/renderer/forward-renderer.js | 57 | function vogelSpherePrecalculationSamples(numSamples) { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | src/core/preprocessor.js | 704 | // Step 1: Split by "||" to handle OR conditions | COMMENT |
| LOW⚡ | src/core/preprocessor.js | 708 | // Step 2: Split each OR segment by "&&" to handle AND conditions | COMMENT |
| LOW⚡ | src/core/preprocessor.js | 711 | // Step 3: Evaluate each AND segment | COMMENT |
| LOW⚡ | src/core/preprocessor.js | 721 | // Step 4: If any OR segment evaluates to true, short-circuit and return true | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | src/core/preprocessor.js | 704 | // Step 1: Split by "||" to handle OR conditions | COMMENT |
| LOW⚡ | src/core/preprocessor.js | 708 | // Step 2: Split each OR segment by "&&" to handle AND conditions | COMMENT |
| LOW⚡ | src/core/preprocessor.js | 711 | // Step 3: Evaluate each AND segment | COMMENT |
| LOW⚡ | src/core/preprocessor.js | 721 | // Step 4: If any OR segment evaluates to true, short-circuit and return true | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/framework/components/element/text-element.js | 498 | // TODO: implement the dictionary of colors | COMMENT |
| LOW | src/platform/graphics/bind-group-format.js | 470 | // TODO: implement | COMMENT |
| LOW | src/platform/graphics/shader-chunks/frag/webgpu.js | 64 | // TODO: implement other texture sampling macros | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/src/examples/xr/xr-ui.text.txt | 1 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur pellentesque mauris in lorem efficitur, nec bibendum | CODE |
| LOW | examples/src/examples/xr/xr-ui.text.txt | 1 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur pellentesque mauris in lorem efficitur, nec bibendum | CODE |
| LOW | scripts/spine/playcanvas-spine.4.3.js | 8853 | _defineProperty(this, "placeholder", void 0); | CODE |
| LOW | src/scene/area-light-luts.js | 63 | const texture = AreaLightLuts.createTexture(device, PIXELFORMAT_RGBA16F, 2, 'placeholder'); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | src/platform/graphics/webgpu/webgpu-query-set.js | 113 | // below). Both begin and end are considered to stay robust to the out-of-order | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | src/platform/graphics/webgl/webgl-render-target.js | 189 | // ##### Create main FBO ##### | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/assets/wasm/twgsl/twgsl.js | 3 | var Module=typeof Module!="undefined"?Module:{};var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisP | CODE |
| LOW | scripts/spine/playcanvas-spine.4.3.js | 6659 | value: function getData() { | CODE |