# Data flow — jasmine/jasmine

> Canonical page: https://codevetter.com/unpack/jasmine/data-flow

# Data flow — jasmine/jasmine

Scanned commit 390d31e48106dd0d0b6dbcf5cf9071650fb2b4bf (2026-08-19). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

Spec definitions become an in-memory suite tree, then configuration transforms that tree into an execution plan. Expectations and exceptions update runnable-owned execution state, which is converted into reporter events. Browser result state feeds DOM views, while rerun settings cross reloads through URL parameters.
- Global declaration functions delegate to Env, which rejects declarations during execution, derives the caller filename, and returns metadata from SuiteBuilder-created suites/specs. — [src/core/requireInterface.js#L27-L29](https://github.com/jasmine/jasmine/blob/390d31e48106dd0d0b6dbcf5cf9071650fb2b4bf/src/core/requireInterface.js#L27-L29) [src/core/Env.js#L562-L568](https://github.com/jasmine/jasmine/blob/390d31e48106dd0d0b6dbcf5cf9071650fb2b4bf/src/core/Env.js#L562-L568) [src/core/Env.js#L603-L641](https://github.com/jasmine/jasmine/blob/390d31e48106dd0d0b6dbcf5cf9071650fb2b4bf/src/core/Env.js#L603-L641)
- SuiteBuilder tracks the current declaration suite and sequential IDs; specFactory_ captures hooks, configuration flags, path generation, timeout, and cloned suite user context into each Spec. — [src/core/SuiteBuilder.js#L16-L22](https://github.com/jasmine/jasmine/blob/390d31e48106dd0d0b6dbcf5cf9071650fb2b4bf/src/core/SuiteBuilder.js#L16-L22) [src/core/SuiteBuilder.js#L215-L234](https://github.com/jasmine/jasmine/blob/390d31e48106dd0d0b6dbcf5cf9071650fb2b4bf/src/core/SuiteBuilder.js#L215-L234) [src/core/SuiteBuilder.js#L237-L262](https://github.com/jasmine/jasmine/blob/390d31e48106dd0d0b6dbcf5cf9071650fb2b4bf/src/core/SuiteBuilder.js#L237-L262)
- Runner chooses explicit runnable IDs, focused IDs, or the top suite, then supplies seeded child ordering and specFilter(metadata) exclusion to TreeProcessor.processTree. — [src/core/Runner.js#L52-L86](https://github.com/jasmine/jasmine/blob/390d31e48106dd0d0b6dbcf5cf9071650fb2b4bf/src/core/Runner.js#L52-L86)
- Runnable resources shallow-copy parent customization tables and arrays into child scope; completion removes the error override, restores spies, and deletes that runnable's resources. — [src/core/RunableResources.js#L29-L61](https://github.com/jasmine/jasmine/blob/390d31e48106dd0d0b6dbcf5cf9071650fb2b4bf/src/core/RunableResources.js#L29-L61)
- Env.expect binds actual values and scoped matchers to the current runnable; Expector instantiates the matcher, compares arguments, builds a message, and calls Spec.addExpectationResult. — [src/core/Env.js#L147-L157](https://github.com/jasmine/jasmine/blob/390d31e48106dd0d0b6dbcf5cf9071650fb2b4bf/src/core/Env.js#L147-L157) [src/core/Env.js#L719-L729](https://github.com/jasmine/jasmine/blob/390d31e48106dd0d0b6dbcf5cf9071650fb2b4bf/src/core/Env.js#L719-L729) [src/core/Expector.js#L13-L27](https://github.com/jasmine/jasmine/blob/390d31e48106dd0d0b6dbcf5cf9071650fb2b4bf/src/core/Expector.js#L13-L27) [src/core/Expector.js#L61-L89](https://github.com/jasmine/jasmine/blob/390d31e48106dd0d0b6dbcf5cf9071650fb2b4bf/src/core/Expector.js#L61-L89)
- Spec stores passed/failed expectations, duration, reasons, properties, and debug logs; doneEvent exposes these fields, and ReportDispatcher structured-clones each event separately for each reporter. — [src/core/Spec.js#L48-L63](https://github.com/jasmine/jasmine/blob/390d31e48106dd0d0b6dbcf5cf9071650fb2b4bf/src/core/Spec.js#L48-L63) [src/core/Spec.js#L117-L131](https://github.com/jasmine/jasmine/blob/390d31e48106dd0d0b6dbcf5cf9071650fb2b4bf/src/core/Spec.js#L117-L131) [src/core/Spec.js#L176-L195](https://github.com/jasmine/jasmine/blob/390d31e48106dd0d0b6dbcf5cf9071650fb2b4bf/src/core/Spec.js#L176-L195) [src/core/ReportDispatcher.js#L58-L75](https://github.com/jasmine/jasmine/blob/390d31e48106dd0d0b6dbcf5cf9071650fb2b4bf/src/core/ReportDispatcher.js#L58-L75)
- ResultsStateBuilder builds a parent-linked result tree and counters from suite/spec events; HtmlReporterV2 renders summary and performance views at jasmineDone, and failure strings become text nodes. — [src/html/ResultsStateBuilder.js#L18-L57](https://github.com/jasmine/jasmine/blob/390d31e48106dd0d0b6dbcf5cf9071650fb2b4bf/src/html/ResultsStateBuilder.js#L18-L57) [src/html/HtmlReporterV2.js#L145-L189](https://github.com/jasmine/jasmine/blob/390d31e48106dd0d0b6dbcf5cf9071650fb2b4bf/src/html/HtmlReporterV2.js#L145-L189) [src/html/htmlReporterUtils.js#L18-L26](https://github.com/jasmine/jasmine/blob/390d31e48106dd0d0b6dbcf5cf9071650fb2b4bf/src/html/htmlReporterUtils.js#L18-L26)
- Rerun links serialize suite/spec paths into the path query parameter; QueryString URI-encodes parameters, and the next boot reconstructs configuration and prefix-path or substring filtering from window.location. — [src/html/HtmlReporterV2.js#L235-L275](https://github.com/jasmine/jasmine/blob/390d31e48106dd0d0b6dbcf5cf9071650fb2b4bf/src/html/HtmlReporterV2.js#L235-L275) [src/html/QueryString.js#L54-L82](https://github.com/jasmine/jasmine/blob/390d31e48106dd0d0b6dbcf5cf9071650fb2b4bf/src/html/QueryString.js#L54-L82) [src/html/HtmlSpecFilterv2.js#L9-L36](https://github.com/jasmine/jasmine/blob/390d31e48106dd0d0b6dbcf5cf9071650fb2b4bf/src/html/HtmlSpecFilterv2.js#L9-L36) [src/boot/boot.js#L4-L13](https://github.com/jasmine/jasmine/blob/390d31e48106dd0d0b6dbcf5cf9071650fb2b4bf/src/boot/boot.js#L4-L13)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
