Files
Open_Ultra_SAST/benchmarks/measurements/2026-09-17-javascript-build-path.json
T

151 lines
5.9 KiB
JSON
Raw Normal View History

{
"experiment": "javascript-build-path-v1",
"root": "/cache/nodegoat/c5cb68a7084e",
"paths": [
{
"path": "frontend_then_overlay",
"frontend_seconds": 6.20875704404898,
"overlay_seconds": 14.808171501965262,
"total_seconds": 21.016928546014242,
"frontend_exit": 0,
"overlay_exit": 0,
"census": {
"files": "44",
"methods": "579",
"calls": "4134",
"file_names": [
"Gruntfile.js",
"app/assets/js/chart/chart-data-morris.js",
"app/assets/js/tour/redirects-steps.js",
"app/data/allocations-dao.js",
"app/data/benefits-dao.js",
"app/data/contributions-dao.js",
"app/data/memos-dao.js",
"app/data/profile-dao.js",
"app/data/research-dao.js",
"app/data/user-dao.js",
"app/routes/allocations.js",
"app/routes/benefits.js",
"app/routes/contributions.js",
"app/routes/error.js",
"app/routes/index.js",
"app/routes/memos.js",
"app/routes/profile.js",
"app/routes/research.js",
"app/routes/session.js",
"app/routes/tutorial.js",
"artifacts/db-reset.js",
"config/config.js",
"config/env/all.js",
"config/env/development.js",
"config/env/production.js",
"config/env/test.js",
"server.js",
"test/e2e/integration/allocations_spec.js",
"test/e2e/integration/benefits_spec.js",
"test/e2e/integration/contributions_spec.js",
"test/e2e/integration/dashboard_spec.js",
"test/e2e/integration/general_spec.js",
"test/e2e/integration/learn_spec.js",
"test/e2e/integration/login_spec.js",
"test/e2e/integration/logout_spec.js",
"test/e2e/integration/memos_spec.js",
"test/e2e/integration/profile_spec.js",
"test/e2e/integration/research_spec.js",
"test/e2e/integration/signup_spec.js",
"test/e2e/integration/tutorial_spec.js",
"test/e2e/plugins/index.js",
"test/e2e/support/commands.js",
"test/e2e/support/index.js",
"test/security/profile-test.js"
],
"overlays": "base,controlflow,typerel,callgraph,dataflowOss",
"maxHeapMB": "2048"
}
},
{
"path": "joern_parse_only",
"total_seconds": 10.995579135953449,
"exit": 0,
"stderr_tail": "Picked up JAVA_TOOL_OPTIONS: -Xmx2048m\n2026-09-17 06:41:16.285 WARN CfgCreator$ Using order fallback for try statement finally body\n",
"census": {
"files": "44",
"methods": "579",
"calls": "4134",
"file_names": [
"Gruntfile.js",
"app/assets/js/chart/chart-data-morris.js",
"app/assets/js/tour/redirects-steps.js",
"app/data/allocations-dao.js",
"app/data/benefits-dao.js",
"app/data/contributions-dao.js",
"app/data/memos-dao.js",
"app/data/profile-dao.js",
"app/data/research-dao.js",
"app/data/user-dao.js",
"app/routes/allocations.js",
"app/routes/benefits.js",
"app/routes/contributions.js",
"app/routes/error.js",
"app/routes/index.js",
"app/routes/memos.js",
"app/routes/profile.js",
"app/routes/research.js",
"app/routes/session.js",
"app/routes/tutorial.js",
"artifacts/db-reset.js",
"config/config.js",
"config/env/all.js",
"config/env/development.js",
"config/env/production.js",
"config/env/test.js",
"server.js",
"test/e2e/integration/allocations_spec.js",
"test/e2e/integration/benefits_spec.js",
"test/e2e/integration/contributions_spec.js",
"test/e2e/integration/dashboard_spec.js",
"test/e2e/integration/general_spec.js",
"test/e2e/integration/learn_spec.js",
"test/e2e/integration/login_spec.js",
"test/e2e/integration/logout_spec.js",
"test/e2e/integration/memos_spec.js",
"test/e2e/integration/profile_spec.js",
"test/e2e/integration/research_spec.js",
"test/e2e/integration/signup_spec.js",
"test/e2e/integration/tutorial_spec.js",
"test/e2e/plugins/index.js",
"test/e2e/support/commands.js",
"test/e2e/support/index.js",
"test/security/profile-test.js"
],
"overlays": "base,controlflow,typerel,callgraph,dataflowOss",
"maxHeapMB": "2048"
}
}
],
"source_files": 50,
"source_bytes": 367111,
"retention": {
"frontend_has_gruntfile": true,
"joern_parse_has_gruntfile": true,
"frontend_test_files": 18,
"joern_parse_test_files": 18,
"only_in_frontend": [],
"only_in_joern_parse": []
},
"comparison": {
"same_files": true,
"same_methods": true,
"same_overlays": true,
"same_file_names": true,
"seconds_saved": 10.02
},
"milestone": "M2 task 11.6",
"instrument_note": "A first run without OUSAST_INCLUDE_TESTS and OUSAST_INCLUDE_BUILD_CONFIGS reported 25 files from both paths and appeared to show equivalence. It did not: both runs dropped the retained files, so the comparison said nothing about the retention adaptation the frontend path exists for. An existing control caught the change built on it. This run sets the production environment.",
"decision": "JavaScript now builds through joern-parse, one engine start including overlays, and falls back to the declared frontend plus overlay pass whenever the census is short. Both paths hold the same 44 files, 579 methods, file names, overlays, the Gruntfile and all eighteen first-party test files.",
"limits": [
"One pinned JavaScript tree. PHP keeps the frontend path, which it needs for exclusions and retries.",
"A build saving is not the latency gate: the profile rerun decides that."
]
}