[INFO] fetching crate oak-javascript 0.0.11... [INFO] testing oak-javascript-0.0.11 against master#562dee4820c458d823175268e41601d4c060588a for pr-154210-2 [INFO] extracting crate oak-javascript 0.0.11 into /workspace/builds/worker-4-tc1/source [INFO] started tweaking crates.io crate oak-javascript 0.0.11 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate oak-javascript 0.0.11 [INFO] tweaked toml for crates.io crate oak-javascript 0.0.11 written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate oak-javascript 0.0.11 on toolchain 562dee4820c458d823175268e41601d4c060588a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate oak-javascript 0.0.11 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded inotify v0.11.0 [INFO] [stderr] Downloaded oak-typescript v0.0.11 [INFO] [stderr] Downloaded notify-types v2.1.0 [INFO] [stderr] Downloaded oak-navigation v0.0.11 [INFO] [stderr] Downloaded oak-symbols v0.0.11 [INFO] [stderr] Downloaded notify v8.2.0 [INFO] [stderr] Downloaded oak-highlight v0.0.11 [INFO] [stderr] Downloaded oak-json v0.0.11 [INFO] [stderr] Downloaded zerocopy-derive v0.8.40 [INFO] [stderr] Downloaded oak-folding v0.0.11 [INFO] [stderr] Downloaded oak-pretty-print v0.0.11 [INFO] [stderr] Downloaded oak-core v0.0.11 [INFO] [stderr] Downloaded oak-lsp v0.0.11 [INFO] [stderr] Downloaded oak-mcp v0.0.11 [INFO] [stderr] Downloaded zerocopy v0.8.40 [INFO] [stderr] Downloaded oak-hover v0.0.11 [INFO] [stderr] Downloaded oak-resolver v0.0.11 [INFO] [stderr] Downloaded oak-semantic-search v0.0.11 [INFO] [stderr] Downloaded oak-testing v0.0.11 [INFO] [stderr] Downloaded oak-macros v0.0.11 [INFO] [stderr] Downloaded oak-vfs v0.0.11 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] d3fb7dfee00822422ba3a46a9d64f74d73988176a99db7fcf700b5db8560fc0b [INFO] running `Command { std: "docker" "start" "-a" "d3fb7dfee00822422ba3a46a9d64f74d73988176a99db7fcf700b5db8560fc0b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d3fb7dfee00822422ba3a46a9d64f74d73988176a99db7fcf700b5db8560fc0b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d3fb7dfee00822422ba3a46a9d64f74d73988176a99db7fcf700b5db8560fc0b", kill_on_drop: false }` [INFO] [stdout] d3fb7dfee00822422ba3a46a9d64f74d73988176a99db7fcf700b5db8560fc0b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 14bf284d992debaec45bd5ed7eaa810d563d93f60b63c18a6c29266bd467f65b [INFO] running `Command { std: "docker" "start" "-a" "14bf284d992debaec45bd5ed7eaa810d563d93f60b63c18a6c29266bd467f65b", kill_on_drop: false }` [INFO] [stderr] Compiling zerocopy v0.8.40 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling itoa v1.0.17 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling libc v0.2.182 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling oak-macros v0.0.11 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling rand_core v0.9.5 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling triomphe v0.1.15 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling twox-hash v2.1.2 [INFO] [stderr] Compiling oak-core v0.0.11 [INFO] [stderr] Compiling oak-json v0.0.11 [INFO] [stderr] Compiling oak-typescript v0.0.11 [INFO] [stderr] Compiling oak-javascript v0.0.11 (/opt/rustwide/workdir) [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/lexer/mod.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct JavaScriptLexer<'config> { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] 14 | config: &'config JavaScriptLanguage, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `JavaScriptLexer` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 19.24s [INFO] running `Command { std: "docker" "inspect" "14bf284d992debaec45bd5ed7eaa810d563d93f60b63c18a6c29266bd467f65b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "14bf284d992debaec45bd5ed7eaa810d563d93f60b63c18a6c29266bd467f65b", kill_on_drop: false }` [INFO] [stdout] 14bf284d992debaec45bd5ed7eaa810d563d93f60b63c18a6c29266bd467f65b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 085d274a60e6d415af352012b5e1d1076a8bd742ec8109346d20bdad8e437e37 [INFO] running `Command { std: "docker" "start" "-a" "085d274a60e6d415af352012b5e1d1076a8bd742ec8109346d20bdad8e437e37", kill_on_drop: false }` [INFO] [stderr] Compiling oak-testing v0.0.11 [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/lexer/mod.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct JavaScriptLexer<'config> { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] 14 | config: &'config JavaScriptLanguage, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `JavaScriptLexer` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling oak-javascript v0.0.11 (/opt/rustwide/workdir) [INFO] [stdout] warning: feature `new_range_api` is declared but not used [INFO] [stdout] --> tests/main.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | #![feature(new_range_api)] [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_features)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/lexer/mod.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct JavaScriptLexer<'config> { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] 14 | config: &'config JavaScriptLanguage, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `JavaScriptLexer` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1.45s [INFO] running `Command { std: "docker" "inspect" "085d274a60e6d415af352012b5e1d1076a8bd742ec8109346d20bdad8e437e37", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "085d274a60e6d415af352012b5e1d1076a8bd742ec8109346d20bdad8e437e37", kill_on_drop: false }` [INFO] [stdout] 085d274a60e6d415af352012b5e1d1076a8bd742ec8109346d20bdad8e437e37 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] d36697c117f3717ec9ba3b6966ff245993b9bf8bf1fde559478cd1fe707f16df [INFO] running `Command { std: "docker" "start" "-a" "d36697c117f3717ec9ba3b6966ff245993b9bf8bf1fde559478cd1fe707f16df", kill_on_drop: false }` [INFO] [stderr] warning: field `config` is never read [INFO] [stderr] --> src/lexer/mod.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 13 | pub struct JavaScriptLexer<'config> { [INFO] [stderr] | --------------- field in this struct [INFO] [stderr] 14 | config: &'config JavaScriptLanguage, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `JavaScriptLexer` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: `oak-javascript` (lib) generated 1 warning [INFO] [stderr] warning: `oak-javascript` (lib test) generated 1 warning (1 duplicate) [INFO] [stderr] warning: feature `new_range_api` is declared but not used [INFO] [stderr] --> tests/main.rs:1:12 [INFO] [stderr] | [INFO] [stderr] 1 | #![feature(new_range_api)] [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_features)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: `oak-javascript` (test "main") generated 1 warning [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.10s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/oak_javascript-c5f6931ae1c1d194) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/main.rs (/opt/rustwide/target/debug/deps/main-9a791480a548771c) [INFO] [stdout] [INFO] [stdout] running 3 tests [INFO] [stdout] test parser::parser_placeholder ... ok [INFO] [stdout] test ready ... ok [INFO] [stdout] test lexer::test_javascript_lexer ... FAILED [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- lexer::test_javascript_lexer stdout ---- [INFO] [stdout] Testing file: /opt/rustwide/workdir/tests/lexer/basic.js [INFO] [stdout] Error: TestFailure { path: "/opt/rustwide/workdir/tests/lexer/basic.js", expected: "LexerTestExpected {\n success: true,\n count: 100,\n tokens: [\n TokenData {\n kind: \"StringLiteral\",\n text: \"'use strict'\",\n start: 25,\n end: 37,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 37,\n end: 38,\n },\n TokenData {\n kind: \"Const\",\n text: \"const\",\n start: 70,\n end: 75,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"PI\",\n start: 76,\n end: 78,\n },\n TokenData {\n kind: \"Equal\",\n text: \"=\",\n start: 79,\n end: 80,\n },\n TokenData {\n kind: \"NumericLiteral\",\n text: \"3.14159\",\n start: 81,\n end: 88,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 88,\n end: 89,\n },\n TokenData {\n kind: \"Let\",\n text: \"let\",\n start: 91,\n end: 94,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"count\",\n start: 95,\n end: 100,\n },\n TokenData {\n kind: \"Equal\",\n text: \"=\",\n start: 101,\n end: 102,\n },\n TokenData {\n kind: \"NumericLiteral\",\n text: \"0\",\n start: 103,\n end: 104,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 104,\n end: 105,\n },\n TokenData {\n kind: \"Var\",\n text: \"var\",\n start: 107,\n end: 110,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"name\",\n start: 111,\n end: 115,\n },\n TokenData {\n kind: \"Equal\",\n text: \"=\",\n start: 116,\n end: 117,\n },\n TokenData {\n kind: \"StringLiteral\",\n text: \"\\\"JavaScript\\\"\",\n start: 118,\n end: 130,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 130,\n end: 131,\n },\n TokenData {\n kind: \"Function\",\n text: \"function\",\n start: 149,\n end: 157,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"greet\",\n start: 158,\n end: 163,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 163,\n end: 164,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"person\",\n start: 164,\n end: 170,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 170,\n end: 171,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 172,\n end: 173,\n },\n TokenData {\n kind: \"Return\",\n text: \"return\",\n start: 179,\n end: 185,\n },\n TokenData {\n kind: \"TemplateString\",\n text: \"`Hello, ${person}!`\",\n start: 186,\n end: 205,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 205,\n end: 206,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 208,\n end: 209,\n },\n TokenData {\n kind: \"Const\",\n text: \"const\",\n start: 213,\n end: 218,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"add\",\n start: 219,\n end: 222,\n },\n TokenData {\n kind: \"Equal\",\n text: \"=\",\n start: 223,\n end: 224,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 225,\n end: 226,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"a\",\n start: 226,\n end: 227,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 227,\n end: 228,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"b\",\n start: 229,\n end: 230,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 230,\n end: 231,\n },\n TokenData {\n kind: \"Arrow\",\n text: \"=>\",\n start: 232,\n end: 234,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"a\",\n start: 235,\n end: 236,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 237,\n end: 238,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"b\",\n start: 239,\n end: 240,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 240,\n end: 241,\n },\n TokenData {\n kind: \"Const\",\n text: \"const\",\n start: 275,\n end: 280,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"multiply\",\n start: 281,\n end: 289,\n },\n TokenData {\n kind: \"Equal\",\n text: \"=\",\n start: 290,\n end: 291,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 292,\n end: 293,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"a\",\n start: 293,\n end: 294,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 294,\n end: 295,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"b\",\n start: 296,\n end: 297,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 297,\n end: 298,\n },\n TokenData {\n kind: \"Arrow\",\n text: \"=>\",\n start: 299,\n end: 301,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 302,\n end: 303,\n },\n TokenData {\n kind: \"Const\",\n text: \"const\",\n start: 309,\n end: 314,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"result\",\n start: 315,\n end: 321,\n },\n TokenData {\n kind: \"Equal\",\n text: \"=\",\n start: 322,\n end: 323,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"a\",\n start: 324,\n end: 325,\n },\n TokenData {\n kind: \"Star\",\n text: \"*\",\n start: 326,\n end: 327,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"b\",\n start: 328,\n end: 329,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 329,\n end: 330,\n },\n TokenData {\n kind: \"Return\",\n text: \"return\",\n start: 336,\n end: 342,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"result\",\n start: 343,\n end: 349,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 349,\n end: 350,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 352,\n end: 353,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 353,\n end: 354,\n },\n TokenData {\n kind: \"Class\",\n text: \"class\",\n start: 370,\n end: 375,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"Person\",\n start: 376,\n end: 382,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 383,\n end: 384,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"constructor\",\n start: 390,\n end: 401,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 401,\n end: 402,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"name\",\n start: 402,\n end: 406,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 406,\n end: 407,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"age\",\n start: 408,\n end: 411,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 411,\n end: 412,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 413,\n end: 414,\n },\n TokenData {\n kind: \"This\",\n text: \"this\",\n start: 424,\n end: 428,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 428,\n end: 429,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"name\",\n start: 429,\n end: 433,\n },\n TokenData {\n kind: \"Equal\",\n text: \"=\",\n start: 434,\n end: 435,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"name\",\n start: 436,\n end: 440,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 440,\n end: 441,\n },\n TokenData {\n kind: \"This\",\n text: \"this\",\n start: 451,\n end: 455,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 455,\n end: 456,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"age\",\n start: 456,\n end: 459,\n },\n TokenData {\n kind: \"Equal\",\n text: \"=\",\n start: 460,\n end: 461,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"age\",\n start: 462,\n end: 465,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 465,\n end: 466,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 472,\n end: 473,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"introduce\",\n start: 485,\n end: 494,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 494,\n end: 495,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 495,\n end: 496,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 497,\n end: 498,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"console\",\n start: 508,\n end: 515,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 515,\n end: 516,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"log\",\n start: 516,\n end: 519,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 519,\n end: 520,\n },\n TokenData {\n kind: \"TemplateString\",\n text: \"`Hi, I'm ${this.name} and I'm ${this.age} years old.`\",\n start: 520,\n end: 573,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 573,\n end: 574,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 574,\n end: 575,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 581,\n end: 582,\n },\n TokenData {\n kind: \"Static\",\n text: \"static\",\n start: 594,\n end: 600,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"createAdult\",\n start: 601,\n end: 612,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 612,\n end: 613,\n },\n ],\n errors: [],\n}", actual: "LexerTestExpected {\n success: true,\n count: 1111,\n tokens: [\n TokenData {\n kind: \"LineComment\",\n text: \"// JavaScript test file\",\n start: 0,\n end: 23,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 23,\n end: 25,\n },\n TokenData {\n kind: \"StringLiteral\",\n text: \"'use strict'\",\n start: 25,\n end: 37,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 37,\n end: 38,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 38,\n end: 40,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 40,\n end: 42,\n },\n TokenData {\n kind: \"LineComment\",\n text: \"// Variables and constants\",\n start: 42,\n end: 68,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 68,\n end: 70,\n },\n TokenData {\n kind: \"Const\",\n text: \"const\",\n start: 70,\n end: 75,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 75,\n end: 76,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"PI\",\n start: 76,\n end: 78,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 78,\n end: 79,\n },\n TokenData {\n kind: \"Equal\",\n text: \"=\",\n start: 79,\n end: 80,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 80,\n end: 81,\n },\n TokenData {\n kind: \"NumericLiteral\",\n text: \"3.14159\",\n start: 81,\n end: 88,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 88,\n end: 89,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 89,\n end: 91,\n },\n TokenData {\n kind: \"Let\",\n text: \"let\",\n start: 91,\n end: 94,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 94,\n end: 95,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"count\",\n start: 95,\n end: 100,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 100,\n end: 101,\n },\n TokenData {\n kind: \"Equal\",\n text: \"=\",\n start: 101,\n end: 102,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 102,\n end: 103,\n },\n TokenData {\n kind: \"NumericLiteral\",\n text: \"0\",\n start: 103,\n end: 104,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 104,\n end: 105,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 105,\n end: 107,\n },\n TokenData {\n kind: \"Var\",\n text: \"var\",\n start: 107,\n end: 110,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 110,\n end: 111,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"name\",\n start: 111,\n end: 115,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 115,\n end: 116,\n },\n TokenData {\n kind: \"Equal\",\n text: \"=\",\n start: 116,\n end: 117,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 117,\n end: 118,\n },\n TokenData {\n kind: \"StringLiteral\",\n text: \"\\\"JavaScript\\\"\",\n start: 118,\n end: 130,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 130,\n end: 131,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 131,\n end: 133,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 133,\n end: 135,\n },\n TokenData {\n kind: \"LineComment\",\n text: \"// Functions\",\n start: 135,\n end: 147,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 147,\n end: 149,\n },\n TokenData {\n kind: \"Function\",\n text: \"function\",\n start: 149,\n end: 157,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 157,\n end: 158,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"greet\",\n start: 158,\n end: 163,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 163,\n end: 164,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"person\",\n start: 164,\n end: 170,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 170,\n end: 171,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 171,\n end: 172,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 172,\n end: 173,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 173,\n end: 175,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 175,\n end: 179,\n },\n TokenData {\n kind: \"Return\",\n text: \"return\",\n start: 179,\n end: 185,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 185,\n end: 186,\n },\n TokenData {\n kind: \"TemplateString\",\n text: \"`Hello, ${person}!`\",\n start: 186,\n end: 205,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 205,\n end: 206,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 206,\n end: 208,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 208,\n end: 209,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 209,\n end: 211,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 211,\n end: 213,\n },\n TokenData {\n kind: \"Const\",\n text: \"const\",\n start: 213,\n end: 218,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 218,\n end: 219,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"add\",\n start: 219,\n end: 222,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 222,\n end: 223,\n },\n TokenData {\n kind: \"Equal\",\n text: \"=\",\n start: 223,\n end: 224,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 224,\n end: 225,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 225,\n end: 226,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"a\",\n start: 226,\n end: 227,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 227,\n end: 228,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 228,\n end: 229,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"b\",\n start: 229,\n end: 230,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 230,\n end: 231,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 231,\n end: 232,\n },\n TokenData {\n kind: \"Arrow\",\n text: \"=>\",\n start: 232,\n end: 234,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 234,\n end: 235,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"a\",\n start: 235,\n end: 236,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 236,\n end: 237,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 237,\n end: 238,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 238,\n end: 239,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"b\",\n start: 239,\n end: 240,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 240,\n end: 241,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 241,\n end: 243,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 243,\n end: 245,\n },\n TokenData {\n kind: \"LineComment\",\n text: \"// Arrow function with block\",\n start: 245,\n end: 273,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 273,\n end: 275,\n },\n TokenData {\n kind: \"Const\",\n text: \"const\",\n start: 275,\n end: 280,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 280,\n end: 281,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"multiply\",\n start: 281,\n end: 289,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 289,\n end: 290,\n },\n TokenData {\n kind: \"Equal\",\n text: \"=\",\n start: 290,\n end: 291,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 291,\n end: 292,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 292,\n end: 293,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"a\",\n start: 293,\n end: 294,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 294,\n end: 295,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 295,\n end: 296,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"b\",\n start: 296,\n end: 297,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 297,\n end: 298,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 298,\n end: 299,\n },\n TokenData {\n kind: \"Arrow\",\n text: \"=>\",\n start: 299,\n end: 301,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 301,\n end: 302,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 302,\n end: 303,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 303,\n end: 305,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 305,\n end: 309,\n },\n TokenData {\n kind: \"Const\",\n text: \"const\",\n start: 309,\n end: 314,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 314,\n end: 315,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"result\",\n start: 315,\n end: 321,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 321,\n end: 322,\n },\n TokenData {\n kind: \"Equal\",\n text: \"=\",\n start: 322,\n end: 323,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 323,\n end: 324,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"a\",\n start: 324,\n end: 325,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 325,\n end: 326,\n },\n TokenData {\n kind: \"Star\",\n text: \"*\",\n start: 326,\n end: 327,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 327,\n end: 328,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"b\",\n start: 328,\n end: 329,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 329,\n end: 330,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 330,\n end: 332,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 332,\n end: 336,\n },\n TokenData {\n kind: \"Return\",\n text: \"return\",\n start: 336,\n end: 342,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 342,\n end: 343,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"result\",\n start: 343,\n end: 349,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 349,\n end: 350,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 350,\n end: 352,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 352,\n end: 353,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 353,\n end: 354,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 354,\n end: 356,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 356,\n end: 358,\n },\n TokenData {\n kind: \"LineComment\",\n text: \"// Classes\",\n start: 358,\n end: 368,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 368,\n end: 370,\n },\n TokenData {\n kind: \"Class\",\n text: \"class\",\n start: 370,\n end: 375,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 375,\n end: 376,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"Person\",\n start: 376,\n end: 382,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 382,\n end: 383,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 383,\n end: 384,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 384,\n end: 386,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 386,\n end: 390,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"constructor\",\n start: 390,\n end: 401,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 401,\n end: 402,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"name\",\n start: 402,\n end: 406,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 406,\n end: 407,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 407,\n end: 408,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"age\",\n start: 408,\n end: 411,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 411,\n end: 412,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 412,\n end: 413,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 413,\n end: 414,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 414,\n end: 416,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 416,\n end: 424,\n },\n TokenData {\n kind: \"This\",\n text: \"this\",\n start: 424,\n end: 428,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 428,\n end: 429,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"name\",\n start: 429,\n end: 433,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 433,\n end: 434,\n },\n TokenData {\n kind: \"Equal\",\n text: \"=\",\n start: 434,\n end: 435,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 435,\n end: 436,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"name\",\n start: 436,\n end: 440,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 440,\n end: 441,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 441,\n end: 443,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 443,\n end: 451,\n },\n TokenData {\n kind: \"This\",\n text: \"this\",\n start: 451,\n end: 455,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 455,\n end: 456,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"age\",\n start: 456,\n end: 459,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 459,\n end: 460,\n },\n TokenData {\n kind: \"Equal\",\n text: \"=\",\n start: 460,\n end: 461,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 461,\n end: 462,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"age\",\n start: 462,\n end: 465,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 465,\n end: 466,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 466,\n end: 468,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 468,\n end: 472,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 472,\n end: 473,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 473,\n end: 475,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 475,\n end: 479,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 479,\n end: 481,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 481,\n end: 485,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"introduce\",\n start: 485,\n end: 494,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 494,\n end: 495,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 495,\n end: 496,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 496,\n end: 497,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 497,\n end: 498,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 498,\n end: 500,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 500,\n end: 508,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"console\",\n start: 508,\n end: 515,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 515,\n end: 516,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"log\",\n start: 516,\n end: 519,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 519,\n end: 520,\n },\n TokenData {\n kind: \"TemplateString\",\n text: \"`Hi, I'm ${this.name} and I'm ${this.age} years old.`\",\n start: 520,\n end: 573,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 573,\n end: 574,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 574,\n end: 575,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 575,\n end: 577,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 577,\n end: 581,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 581,\n end: 582,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 582,\n end: 584,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 584,\n end: 588,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 588,\n end: 590,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 590,\n end: 594,\n },\n TokenData {\n kind: \"Static\",\n text: \"static\",\n start: 594,\n end: 600,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 600,\n end: 601,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"createAdult\",\n start: 601,\n end: 612,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 612,\n end: 613,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"name\",\n start: 613,\n end: 617,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 617,\n end: 618,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 618,\n end: 619,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 619,\n end: 620,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 620,\n end: 622,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 622,\n end: 630,\n },\n TokenData {\n kind: \"Return\",\n text: \"return\",\n start: 630,\n end: 636,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 636,\n end: 637,\n },\n TokenData {\n kind: \"New\",\n text: \"new\",\n start: 637,\n end: 640,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 640,\n end: 641,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"Person\",\n start: 641,\n end: 647,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 647,\n end: 648,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"name\",\n start: 648,\n end: 652,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 652,\n end: 653,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 653,\n end: 654,\n },\n TokenData {\n kind: \"NumericLiteral\",\n text: \"18\",\n start: 654,\n end: 656,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 656,\n end: 657,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 657,\n end: 658,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 658,\n end: 660,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 660,\n end: 664,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 664,\n end: 665,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 665,\n end: 667,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 667,\n end: 668,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 668,\n end: 670,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 670,\n end: 672,\n },\n TokenData {\n kind: \"LineComment\",\n text: \"// Inheritance\",\n start: 672,\n end: 686,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 686,\n end: 688,\n },\n TokenData {\n kind: \"Class\",\n text: \"class\",\n start: 688,\n end: 693,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 693,\n end: 694,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"Student\",\n start: 694,\n end: 701,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 701,\n end: 702,\n },\n TokenData {\n kind: \"Extends\",\n text: \"extends\",\n start: 702,\n end: 709,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 709,\n end: 710,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"Person\",\n start: 710,\n end: 716,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 716,\n end: 717,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 717,\n end: 718,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 718,\n end: 720,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 720,\n end: 724,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"constructor\",\n start: 724,\n end: 735,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 735,\n end: 736,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"name\",\n start: 736,\n end: 740,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 740,\n end: 741,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 741,\n end: 742,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"age\",\n start: 742,\n end: 745,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 745,\n end: 746,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 746,\n end: 747,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"grade\",\n start: 747,\n end: 752,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 752,\n end: 753,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 753,\n end: 754,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 754,\n end: 755,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 755,\n end: 757,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 757,\n end: 765,\n },\n TokenData {\n kind: \"Super\",\n text: \"super\",\n start: 765,\n end: 770,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 770,\n end: 771,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"name\",\n start: 771,\n end: 775,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 775,\n end: 776,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 776,\n end: 777,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"age\",\n start: 777,\n end: 780,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 780,\n end: 781,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 781,\n end: 782,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 782,\n end: 784,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 784,\n end: 792,\n },\n TokenData {\n kind: \"This\",\n text: \"this\",\n start: 792,\n end: 796,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 796,\n end: 797,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"grade\",\n start: 797,\n end: 802,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 802,\n end: 803,\n },\n TokenData {\n kind: \"Equal\",\n text: \"=\",\n start: 803,\n end: 804,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 804,\n end: 805,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"grade\",\n start: 805,\n end: 810,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 810,\n end: 811,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 811,\n end: 813,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 813,\n end: 817,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 817,\n end: 818,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 818,\n end: 820,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 820,\n end: 824,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 824,\n end: 826,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 826,\n end: 830,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"study\",\n start: 830,\n end: 835,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 835,\n end: 836,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 836,\n end: 837,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 837,\n end: 838,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 838,\n end: 839,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 839,\n end: 841,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 841,\n end: 849,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"console\",\n start: 849,\n end: 856,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 856,\n end: 857,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"log\",\n start: 857,\n end: 860,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 860,\n end: 861,\n },\n TokenData {\n kind: \"TemplateString\",\n text: \"`${this.name} is studying.`\",\n start: 861,\n end: 888,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 888,\n end: 889,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 889,\n end: 890,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 890,\n end: 892,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 892,\n end: 896,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 896,\n end: 897,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 897,\n end: 899,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 899,\n end: 900,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 900,\n end: 902,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 902,\n end: 904,\n },\n TokenData {\n kind: \"LineComment\",\n text: \"// Objects\",\n start: 904,\n end: 914,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 914,\n end: 916,\n },\n TokenData {\n kind: \"Const\",\n text: \"const\",\n start: 916,\n end: 921,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 921,\n end: 922,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"config\",\n start: 922,\n end: 928,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 928,\n end: 929,\n },\n TokenData {\n kind: \"Equal\",\n text: \"=\",\n start: 929,\n end: 930,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 930,\n end: 931,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 931,\n end: 932,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 932,\n end: 934,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 934,\n end: 938,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"debug\",\n start: 938,\n end: 943,\n },\n TokenData {\n kind: \"Colon\",\n text: \":\",\n start: 943,\n end: 944,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 944,\n end: 945,\n },\n TokenData {\n kind: \"True\",\n text: \"true\",\n start: 945,\n end: 949,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 949,\n end: 950,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 950,\n end: 952,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 952,\n end: 956,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"timeout\",\n start: 956,\n end: 963,\n },\n TokenData {\n kind: \"Colon\",\n text: \":\",\n start: 963,\n end: 964,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 964,\n end: 965,\n },\n TokenData {\n kind: \"NumericLiteral\",\n text: \"5000\",\n start: 965,\n end: 969,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 969,\n end: 970,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 970,\n end: 972,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 972,\n end: 976,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"retries\",\n start: 976,\n end: 983,\n },\n TokenData {\n kind: \"Colon\",\n text: \":\",\n start: 983,\n end: 984,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 984,\n end: 985,\n },\n TokenData {\n kind: \"NumericLiteral\",\n text: \"3\",\n start: 985,\n end: 986,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 986,\n end: 987,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 987,\n end: 989,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 989,\n end: 993,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 993,\n end: 995,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 995,\n end: 999,\n },\n TokenData {\n kind: \"LineComment\",\n text: \"// Method shorthand\",\n start: 999,\n end: 1018,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1018,\n end: 1020,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1020,\n end: 1024,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"log\",\n start: 1024,\n end: 1027,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1027,\n end: 1028,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"message\",\n start: 1028,\n end: 1035,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1035,\n end: 1036,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1036,\n end: 1037,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 1037,\n end: 1038,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1038,\n end: 1040,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1040,\n end: 1048,\n },\n TokenData {\n kind: \"If\",\n text: \"if\",\n start: 1048,\n end: 1050,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1050,\n end: 1051,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1051,\n end: 1052,\n },\n TokenData {\n kind: \"This\",\n text: \"this\",\n start: 1052,\n end: 1056,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1056,\n end: 1057,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"debug\",\n start: 1057,\n end: 1062,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1062,\n end: 1063,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1063,\n end: 1064,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 1064,\n end: 1065,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1065,\n end: 1067,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1067,\n end: 1079,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"console\",\n start: 1079,\n end: 1086,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1086,\n end: 1087,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"log\",\n start: 1087,\n end: 1090,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1090,\n end: 1091,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"message\",\n start: 1091,\n end: 1098,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1098,\n end: 1099,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1099,\n end: 1100,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1100,\n end: 1102,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1102,\n end: 1110,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 1110,\n end: 1111,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1111,\n end: 1113,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1113,\n end: 1117,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 1117,\n end: 1118,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1118,\n end: 1120,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 1120,\n end: 1121,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1121,\n end: 1122,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1122,\n end: 1124,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1124,\n end: 1126,\n },\n TokenData {\n kind: \"LineComment\",\n text: \"// Arrays and array methods\",\n start: 1126,\n end: 1153,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1153,\n end: 1155,\n },\n TokenData {\n kind: \"Const\",\n text: \"const\",\n start: 1155,\n end: 1160,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1160,\n end: 1161,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"numbers\",\n start: 1161,\n end: 1168,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1168,\n end: 1169,\n },\n TokenData {\n kind: \"Equal\",\n text: \"=\",\n start: 1169,\n end: 1170,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1170,\n end: 1171,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 1171,\n end: 1172,\n },\n TokenData {\n kind: \"NumericLiteral\",\n text: \"1\",\n start: 1172,\n end: 1173,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1173,\n end: 1174,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1174,\n end: 1175,\n },\n TokenData {\n kind: \"NumericLiteral\",\n text: \"2\",\n start: 1175,\n end: 1176,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1176,\n end: 1177,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1177,\n end: 1178,\n },\n TokenData {\n kind: \"NumericLiteral\",\n text: \"3\",\n start: 1178,\n end: 1179,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1179,\n end: 1180,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1180,\n end: 1181,\n },\n TokenData {\n kind: \"NumericLiteral\",\n text: \"4\",\n start: 1181,\n end: 1182,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1182,\n end: 1183,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1183,\n end: 1184,\n },\n TokenData {\n kind: \"NumericLiteral\",\n text: \"5\",\n start: 1184,\n end: 1185,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 1185,\n end: 1186,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1186,\n end: 1187,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1187,\n end: 1189,\n },\n TokenData {\n kind: \"Const\",\n text: \"const\",\n start: 1189,\n end: 1194,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1194,\n end: 1195,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"squares\",\n start: 1195,\n end: 1202,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1202,\n end: 1203,\n },\n TokenData {\n kind: \"Equal\",\n text: \"=\",\n start: 1203,\n end: 1204,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1204,\n end: 1205,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"numbers\",\n start: 1205,\n end: 1212,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1212,\n end: 1213,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"map\",\n start: 1213,\n end: 1216,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1216,\n end: 1217,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"n\",\n start: 1217,\n end: 1218,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1218,\n end: 1219,\n },\n TokenData {\n kind: \"Arrow\",\n text: \"=>\",\n start: 1219,\n end: 1221,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1221,\n end: 1222,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"n\",\n start: 1222,\n end: 1223,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1223,\n end: 1224,\n },\n TokenData {\n kind: \"Star\",\n text: \"*\",\n start: 1224,\n end: 1225,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1225,\n end: 1226,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"n\",\n start: 1226,\n end: 1227,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1227,\n end: 1228,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1228,\n end: 1229,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1229,\n end: 1231,\n },\n TokenData {\n kind: \"Const\",\n text: \"const\",\n start: 1231,\n end: 1236,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1236,\n end: 1237,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"evens\",\n start: 1237,\n end: 1242,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1242,\n end: 1243,\n },\n TokenData {\n kind: \"Equal\",\n text: \"=\",\n start: 1243,\n end: 1244,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1244,\n end: 1245,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"numbers\",\n start: 1245,\n end: 1252,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1252,\n end: 1253,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"filter\",\n start: 1253,\n end: 1259,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1259,\n end: 1260,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"n\",\n start: 1260,\n end: 1261,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1261,\n end: 1262,\n },\n TokenData {\n kind: \"Arrow\",\n text: \"=>\",\n start: 1262,\n end: 1264,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1264,\n end: 1265,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"n\",\n start: 1265,\n end: 1266,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1266,\n end: 1267,\n },\n TokenData {\n kind: \"Percent\",\n text: \"%\",\n start: 1267,\n end: 1268,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1268,\n end: 1269,\n },\n TokenData {\n kind: \"NumericLiteral\",\n text: \"2\",\n start: 1269,\n end: 1270,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1270,\n end: 1271,\n },\n TokenData {\n kind: \"EqualEqualEqual\",\n text: \"===\",\n start: 1271,\n end: 1274,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1274,\n end: 1275,\n },\n TokenData {\n kind: \"NumericLiteral\",\n text: \"0\",\n start: 1275,\n end: 1276,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1276,\n end: 1277,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1277,\n end: 1278,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1278,\n end: 1280,\n },\n TokenData {\n kind: \"Const\",\n text: \"const\",\n start: 1280,\n end: 1285,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1285,\n end: 1286,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"sum\",\n start: 1286,\n end: 1289,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1289,\n end: 1290,\n },\n TokenData {\n kind: \"Equal\",\n text: \"=\",\n start: 1290,\n end: 1291,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1291,\n end: 1292,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"numbers\",\n start: 1292,\n end: 1299,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1299,\n end: 1300,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"reduce\",\n start: 1300,\n end: 1306,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1306,\n end: 1307,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1307,\n end: 1308,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"acc\",\n start: 1308,\n end: 1311,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1311,\n end: 1312,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1312,\n end: 1313,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"n\",\n start: 1313,\n end: 1314,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1314,\n end: 1315,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1315,\n end: 1316,\n },\n TokenData {\n kind: \"Arrow\",\n text: \"=>\",\n start: 1316,\n end: 1318,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1318,\n end: 1319,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"acc\",\n start: 1319,\n end: 1322,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1322,\n end: 1323,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 1323,\n end: 1324,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1324,\n end: 1325,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"n\",\n start: 1325,\n end: 1326,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1326,\n end: 1327,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1327,\n end: 1328,\n },\n TokenData {\n kind: \"NumericLiteral\",\n text: \"0\",\n start: 1328,\n end: 1329,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1329,\n end: 1330,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1330,\n end: 1331,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1331,\n end: 1333,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1333,\n end: 1335,\n },\n TokenData {\n kind: \"LineComment\",\n text: \"// Destructuring\",\n start: 1335,\n end: 1351,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1351,\n end: 1353,\n },\n TokenData {\n kind: \"Const\",\n text: \"const\",\n start: 1353,\n end: 1358,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1358,\n end: 1359,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 1359,\n end: 1360,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"first\",\n start: 1360,\n end: 1365,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1365,\n end: 1366,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1366,\n end: 1367,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"second\",\n start: 1367,\n end: 1373,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1373,\n end: 1374,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1374,\n end: 1375,\n },\n TokenData {\n kind: \"DotDotDot\",\n text: \"...\",\n start: 1375,\n end: 1378,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"rest\",\n start: 1378,\n end: 1382,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 1382,\n end: 1383,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1383,\n end: 1384,\n },\n TokenData {\n kind: \"Equal\",\n text: \"=\",\n start: 1384,\n end: 1385,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1385,\n end: 1386,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"numbers\",\n start: 1386,\n end: 1393,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1393,\n end: 1394,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1394,\n end: 1396,\n },\n TokenData {\n kind: \"Const\",\n text: \"const\",\n start: 1396,\n end: 1401,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1401,\n end: 1402,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 1402,\n end: 1403,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"debug\",\n start: 1403,\n end: 1408,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1408,\n end: 1409,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1409,\n end: 1410,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"timeout\",\n start: 1410,\n end: 1417,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 1417,\n end: 1418,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1418,\n end: 1419,\n },\n TokenData {\n kind: \"Equal\",\n text: \"=\",\n start: 1419,\n end: 1420,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1420,\n end: 1421,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"config\",\n start: 1421,\n end: 1427,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1427,\n end: 1428,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1428,\n end: 1430,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1430,\n end: 1432,\n },\n TokenData {\n kind: \"LineComment\",\n text: \"// Template literals\",\n start: 1432,\n end: 1452,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1452,\n end: 1454,\n },\n TokenData {\n kind: \"Const\",\n text: \"const\",\n start: 1454,\n end: 1459,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1459,\n end: 1460,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"message\",\n start: 1460,\n end: 1467,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1467,\n end: 1468,\n },\n TokenData {\n kind: \"Equal\",\n text: \"=\",\n start: 1468,\n end: 1469,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1469,\n end: 1470,\n },\n TokenData {\n kind: \"TemplateString\",\n text: \"`\\r\\n Welcome to ${name}!\\r\\n Current count: ${count}\\r\\n Sum of numbers: ${sum}\\r\\n`\",\n start: 1470,\n end: 1556,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1556,\n end: 1557,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1557,\n end: 1559,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1559,\n end: 1561,\n },\n TokenData {\n kind: \"LineComment\",\n text: \"// Promises\",\n start: 1561,\n end: 1572,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1572,\n end: 1574,\n },\n TokenData {\n kind: \"Function\",\n text: \"function\",\n start: 1574,\n end: 1582,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1582,\n end: 1583,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"fetchData\",\n start: 1583,\n end: 1592,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1592,\n end: 1593,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1593,\n end: 1594,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1594,\n end: 1595,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 1595,\n end: 1596,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1596,\n end: 1598,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1598,\n end: 1602,\n },\n TokenData {\n kind: \"Return\",\n text: \"return\",\n start: 1602,\n end: 1608,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1608,\n end: 1609,\n },\n TokenData {\n kind: \"New\",\n text: \"new\",\n start: 1609,\n end: 1612,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1612,\n end: 1613,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"Promise\",\n start: 1613,\n end: 1620,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1620,\n end: 1621,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1621,\n end: 1622,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"resolve\",\n start: 1622,\n end: 1629,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1629,\n end: 1630,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1630,\n end: 1631,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"reject\",\n start: 1631,\n end: 1637,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1637,\n end: 1638,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1638,\n end: 1639,\n },\n TokenData {\n kind: \"Arrow\",\n text: \"=>\",\n start: 1639,\n end: 1641,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1641,\n end: 1642,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 1642,\n end: 1643,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1643,\n end: 1645,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1645,\n end: 1653,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"setTimeout\",\n start: 1653,\n end: 1663,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1663,\n end: 1664,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1664,\n end: 1665,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1665,\n end: 1666,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1666,\n end: 1667,\n },\n TokenData {\n kind: \"Arrow\",\n text: \"=>\",\n start: 1667,\n end: 1669,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1669,\n end: 1670,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 1670,\n end: 1671,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1671,\n end: 1673,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1673,\n end: 1685,\n },\n TokenData {\n kind: \"If\",\n text: \"if\",\n start: 1685,\n end: 1687,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1687,\n end: 1688,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1688,\n end: 1689,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"Math\",\n start: 1689,\n end: 1693,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1693,\n end: 1694,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"random\",\n start: 1694,\n end: 1700,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1700,\n end: 1701,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1701,\n end: 1702,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1702,\n end: 1703,\n },\n TokenData {\n kind: \"Greater\",\n text: \">\",\n start: 1703,\n end: 1704,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1704,\n end: 1705,\n },\n TokenData {\n kind: \"NumericLiteral\",\n text: \"0.5\",\n start: 1705,\n end: 1708,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1708,\n end: 1709,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1709,\n end: 1710,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 1710,\n end: 1711,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1711,\n end: 1713,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1713,\n end: 1729,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"resolve\",\n start: 1729,\n end: 1736,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1736,\n end: 1737,\n },\n TokenData {\n kind: \"StringLiteral\",\n text: \"\\\"Data fetched successfully\\\"\",\n start: 1737,\n end: 1764,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1764,\n end: 1765,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1765,\n end: 1766,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1766,\n end: 1768,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1768,\n end: 1780,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 1780,\n end: 1781,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1781,\n end: 1782,\n },\n TokenData {\n kind: \"Else\",\n text: \"else\",\n start: 1782,\n end: 1786,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1786,\n end: 1787,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 1787,\n end: 1788,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1788,\n end: 1790,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1790,\n end: 1806,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"reject\",\n start: 1806,\n end: 1812,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1812,\n end: 1813,\n },\n TokenData {\n kind: \"New\",\n text: \"new\",\n start: 1813,\n end: 1816,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1816,\n end: 1817,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"Error\",\n start: 1817,\n end: 1822,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1822,\n end: 1823,\n },\n TokenData {\n kind: \"StringLiteral\",\n text: \"\\\"Failed to fetch data\\\"\",\n start: 1823,\n end: 1845,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1845,\n end: 1846,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1846,\n end: 1847,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1847,\n end: 1848,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1848,\n end: 1850,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1850,\n end: 1862,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 1862,\n end: 1863,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1863,\n end: 1865,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1865,\n end: 1873,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 1873,\n end: 1874,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1874,\n end: 1875,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1875,\n end: 1876,\n },\n TokenData {\n kind: \"NumericLiteral\",\n text: \"1000\",\n start: 1876,\n end: 1880,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1880,\n end: 1881,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1881,\n end: 1882,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1882,\n end: 1884,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1884,\n end: 1888,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 1888,\n end: 1889,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1889,\n end: 1890,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1890,\n end: 1891,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1891,\n end: 1893,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 1893,\n end: 1894,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1894,\n end: 1896,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1896,\n end: 1898,\n },\n TokenData {\n kind: \"LineComment\",\n text: \"// Async/await\",\n start: 1898,\n end: 1912,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1912,\n end: 1914,\n },\n TokenData {\n kind: \"Async\",\n text: \"async\",\n start: 1914,\n end: 1919,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1919,\n end: 1920,\n },\n TokenData {\n kind: \"Function\",\n text: \"function\",\n start: 1920,\n end: 1928,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1928,\n end: 1929,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"processData\",\n start: 1929,\n end: 1940,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1940,\n end: 1941,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1941,\n end: 1942,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1942,\n end: 1943,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 1943,\n end: 1944,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1944,\n end: 1946,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1946,\n end: 1950,\n },\n TokenData {\n kind: \"Try\",\n text: \"try\",\n start: 1950,\n end: 1953,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1953,\n end: 1954,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 1954,\n end: 1955,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1955,\n end: 1957,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1957,\n end: 1965,\n },\n TokenData {\n kind: \"Const\",\n text: \"const\",\n start: 1965,\n end: 1970,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1970,\n end: 1971,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"data\",\n start: 1971,\n end: 1975,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1975,\n end: 1976,\n },\n TokenData {\n kind: \"Equal\",\n text: \"=\",\n start: 1976,\n end: 1977,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1977,\n end: 1978,\n },\n TokenData {\n kind: \"Await\",\n text: \"await\",\n start: 1978,\n end: 1983,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1983,\n end: 1984,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"fetchData\",\n start: 1984,\n end: 1993,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1993,\n end: 1994,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1994,\n end: 1995,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1995,\n end: 1996,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1996,\n end: 1998,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1998,\n end: 2006,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"console\",\n start: 2006,\n end: 2013,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 2013,\n end: 2014,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"log\",\n start: 2014,\n end: 2017,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2017,\n end: 2018,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"data\",\n start: 2018,\n end: 2022,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2022,\n end: 2023,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 2023,\n end: 2024,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2024,\n end: 2026,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2026,\n end: 2034,\n },\n TokenData {\n kind: \"Return\",\n text: \"return\",\n start: 2034,\n end: 2040,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2040,\n end: 2041,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"data\",\n start: 2041,\n end: 2045,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 2045,\n end: 2046,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2046,\n end: 2048,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2048,\n end: 2052,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 2052,\n end: 2053,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2053,\n end: 2054,\n },\n TokenData {\n kind: \"Catch\",\n text: \"catch\",\n start: 2054,\n end: 2059,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2059,\n end: 2060,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2060,\n end: 2061,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"error\",\n start: 2061,\n end: 2066,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2066,\n end: 2067,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2067,\n end: 2068,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 2068,\n end: 2069,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2069,\n end: 2071,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2071,\n end: 2079,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"console\",\n start: 2079,\n end: 2086,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 2086,\n end: 2087,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"error\",\n start: 2087,\n end: 2092,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2092,\n end: 2093,\n },\n TokenData {\n kind: \"StringLiteral\",\n text: \"\\\"Error:\\\"\",\n start: 2093,\n end: 2101,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2101,\n end: 2102,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2102,\n end: 2103,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"error\",\n start: 2103,\n end: 2108,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 2108,\n end: 2109,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"message\",\n start: 2109,\n end: 2116,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2116,\n end: 2117,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 2117,\n end: 2118,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2118,\n end: 2120,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2120,\n end: 2128,\n },\n TokenData {\n kind: \"Throw\",\n text: \"throw\",\n start: 2128,\n end: 2133,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2133,\n end: 2134,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"error\",\n start: 2134,\n end: 2139,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 2139,\n end: 2140,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2140,\n end: 2142,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2142,\n end: 2146,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 2146,\n end: 2147,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2147,\n end: 2149,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 2149,\n end: 2150,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2150,\n end: 2152,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2152,\n end: 2154,\n },\n TokenData {\n kind: \"LineComment\",\n text: \"// Modules (ES6)\",\n start: 2154,\n end: 2170,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2170,\n end: 2172,\n },\n TokenData {\n kind: \"Export\",\n text: \"export\",\n start: 2172,\n end: 2178,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2178,\n end: 2179,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 2179,\n end: 2180,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2180,\n end: 2181,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"Person\",\n start: 2181,\n end: 2187,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2187,\n end: 2188,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2188,\n end: 2189,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"Student\",\n start: 2189,\n end: 2196,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2196,\n end: 2197,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2197,\n end: 2198,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"add\",\n start: 2198,\n end: 2201,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2201,\n end: 2202,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2202,\n end: 2203,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"multiply\",\n start: 2203,\n end: 2211,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2211,\n end: 2212,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 2212,\n end: 2213,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 2213,\n end: 2214,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2214,\n end: 2216,\n },\n TokenData {\n kind: \"Export\",\n text: \"export\",\n start: 2216,\n end: 2222,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2222,\n end: 2223,\n },\n TokenData {\n kind: \"Default\",\n text: \"default\",\n start: 2223,\n end: 2230,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2230,\n end: 2231,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"config\",\n start: 2231,\n end: 2237,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 2237,\n end: 2238,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2238,\n end: 2240,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2240,\n end: 2242,\n },\n TokenData {\n kind: \"LineComment\",\n text: \"// Regular expressions\",\n start: 2242,\n end: 2264,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2264,\n end: 2266,\n },\n TokenData {\n kind: \"Const\",\n text: \"const\",\n start: 2266,\n end: 2271,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2271,\n end: 2272,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"emailRegex\",\n start: 2272,\n end: 2282,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2282,\n end: 2283,\n },\n TokenData {\n kind: \"Equal\",\n text: \"=\",\n start: 2283,\n end: 2284,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2284,\n end: 2285,\n },\n TokenData {\n kind: \"Slash\",\n text: \"/\",\n start: 2285,\n end: 2286,\n },\n TokenData {\n kind: \"Caret\",\n text: \"^\",\n start: 2286,\n end: 2287,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 2287,\n end: 2288,\n },\n TokenData {\n kind: \"Caret\",\n text: \"^\",\n start: 2288,\n end: 2289,\n },\n TokenData {\n kind: \"Error\",\n text: \"\\\\\",\n start: 2289,\n end: 2290,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"s\",\n start: 2290,\n end: 2291,\n },\n TokenData {\n kind: \"Error\",\n text: \"@\",\n start: 2291,\n end: 2292,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 2292,\n end: 2293,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 2293,\n end: 2294,\n },\n TokenData {\n kind: \"Error\",\n text: \"@\",\n start: 2294,\n end: 2295,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 2295,\n end: 2296,\n },\n TokenData {\n kind: \"Caret\",\n text: \"^\",\n start: 2296,\n end: 2297,\n },\n TokenData {\n kind: \"Error\",\n text: \"\\\\\",\n start: 2297,\n end: 2298,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"s\",\n start: 2298,\n end: 2299,\n },\n TokenData {\n kind: \"Error\",\n text: \"@\",\n start: 2299,\n end: 2300,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 2300,\n end: 2301,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 2301,\n end: 2302,\n },\n TokenData {\n kind: \"Error\",\n text: \"\\\\\",\n start: 2302,\n end: 2303,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 2303,\n end: 2304,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 2304,\n end: 2305,\n },\n TokenData {\n kind: \"Caret\",\n text: \"^\",\n start: 2305,\n end: 2306,\n },\n TokenData {\n kind: \"Error\",\n text: \"\\\\\",\n start: 2306,\n end: 2307,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"s\",\n start: 2307,\n end: 2308,\n },\n TokenData {\n kind: \"Error\",\n text: \"@\",\n start: 2308,\n end: 2309,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 2309,\n end: 2310,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 2310,\n end: 2311,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"$\",\n start: 2311,\n end: 2312,\n },\n TokenData {\n kind: \"Slash\",\n text: \"/\",\n start: 2312,\n end: 2313,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 2313,\n end: 2314,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2314,\n end: 2316,\n },\n TokenData {\n kind: \"Const\",\n text: \"const\",\n start: 2316,\n end: 2321,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2321,\n end: 2322,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"phoneRegex\",\n start: 2322,\n end: 2332,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2332,\n end: 2333,\n },\n TokenData {\n kind: \"Equal\",\n text: \"=\",\n start: 2333,\n end: 2334,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2334,\n end: 2335,\n },\n TokenData {\n kind: \"Slash\",\n text: \"/\",\n start: 2335,\n end: 2336,\n },\n TokenData {\n kind: \"Caret\",\n text: \"^\",\n start: 2336,\n end: 2337,\n },\n TokenData {\n kind: \"Error\",\n text: \"\\\\\",\n start: 2337,\n end: 2338,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 2338,\n end: 2339,\n },\n TokenData {\n kind: \"Question\",\n text: \"?\",\n start: 2339,\n end: 2340,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 2340,\n end: 2341,\n },\n TokenData {\n kind: \"Error\",\n text: \"\\\\\",\n start: 2341,\n end: 2342,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"d\",\n start: 2342,\n end: 2343,\n },\n TokenData {\n kind: \"Error\",\n text: \"\\\\\",\n start: 2343,\n end: 2344,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"s\",\n start: 2344,\n end: 2345,\n },\n TokenData {\n kind: \"Error\",\n text: \"\\\\\",\n start: 2345,\n end: 2346,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 2346,\n end: 2347,\n },\n TokenData {\n kind: \"Error\",\n text: \"\\\\\",\n start: 2347,\n end: 2348,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2348,\n end: 2349,\n },\n TokenData {\n kind: \"Error\",\n text: \"\\\\\",\n start: 2349,\n end: 2350,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2350,\n end: 2351,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 2351,\n end: 2352,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 2352,\n end: 2353,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"$\",\n start: 2353,\n end: 2354,\n },\n TokenData {\n kind: \"Slash\",\n text: \"/\",\n start: 2354,\n end: 2355,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 2355,\n end: 2356,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2356,\n end: 2358,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2358,\n end: 2360,\n },\n TokenData {\n kind: \"LineComment\",\n text: \"// Control flow\",\n start: 2360,\n end: 2375,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2375,\n end: 2377,\n },\n TokenData {\n kind: \"For\",\n text: \"for\",\n start: 2377,\n end: 2380,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2380,\n end: 2381,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2381,\n end: 2382,\n },\n TokenData {\n kind: \"Let\",\n text: \"let\",\n start: 2382,\n end: 2385,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2385,\n end: 2386,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"i\",\n start: 2386,\n end: 2387,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2387,\n end: 2388,\n },\n TokenData {\n kind: \"Equal\",\n text: \"=\",\n start: 2388,\n end: 2389,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2389,\n end: 2390,\n },\n TokenData {\n kind: \"NumericLiteral\",\n text: \"0\",\n start: 2390,\n end: 2391,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 2391,\n end: 2392,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2392,\n end: 2393,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"i\",\n start: 2393,\n end: 2394,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2394,\n end: 2395,\n },\n TokenData {\n kind: \"Less\",\n text: \"<\",\n start: 2395,\n end: 2396,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2396,\n end: 2397,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"numbers\",\n start: 2397,\n end: 2404,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 2404,\n end: 2405,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"length\",\n start: 2405,\n end: 2411,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 2411,\n end: 2412,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2412,\n end: 2413,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"i\",\n start: 2413,\n end: 2414,\n },\n TokenData {\n kind: \"PlusPlus\",\n text: \"++\",\n start: 2414,\n end: 2416,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2416,\n end: 2417,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2417,\n end: 2418,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 2418,\n end: 2419,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2419,\n end: 2421,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2421,\n end: 2425,\n },\n TokenData {\n kind: \"If\",\n text: \"if\",\n start: 2425,\n end: 2427,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2427,\n end: 2428,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2428,\n end: 2429,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"numbers\",\n start: 2429,\n end: 2436,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 2436,\n end: 2437,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"i\",\n start: 2437,\n end: 2438,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 2438,\n end: 2439,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2439,\n end: 2440,\n },\n TokenData {\n kind: \"Percent\",\n text: \"%\",\n start: 2440,\n end: 2441,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2441,\n end: 2442,\n },\n TokenData {\n kind: \"NumericLiteral\",\n text: \"2\",\n start: 2442,\n end: 2443,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2443,\n end: 2444,\n },\n TokenData {\n kind: \"EqualEqualEqual\",\n text: \"===\",\n start: 2444,\n end: 2447,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2447,\n end: 2448,\n },\n TokenData {\n kind: \"NumericLiteral\",\n text: \"0\",\n start: 2448,\n end: 2449,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2449,\n end: 2450,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2450,\n end: 2451,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 2451,\n end: 2452,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2452,\n end: 2454,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2454,\n end: 2462,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"console\",\n start: 2462,\n end: 2469,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 2469,\n end: 2470,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"log\",\n start: 2470,\n end: 2473,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2473,\n end: 2474,\n },\n TokenData {\n kind: \"TemplateString\",\n text: \"`${numbers[i]} is even`\",\n start: 2474,\n end: 2497,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2497,\n end: 2498,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 2498,\n end: 2499,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2499,\n end: 2501,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2501,\n end: 2505,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 2505,\n end: 2506,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2506,\n end: 2507,\n },\n TokenData {\n kind: \"Else\",\n text: \"else\",\n start: 2507,\n end: 2511,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2511,\n end: 2512,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 2512,\n end: 2513,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2513,\n end: 2515,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2515,\n end: 2523,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"console\",\n start: 2523,\n end: 2530,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 2530,\n end: 2531,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"log\",\n start: 2531,\n end: 2534,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2534,\n end: 2535,\n },\n TokenData {\n kind: \"TemplateString\",\n text: \"`${numbers[i]} is odd`\",\n start: 2535,\n end: 2557,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2557,\n end: 2558,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 2558,\n end: 2559,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2559,\n end: 2561,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2561,\n end: 2565,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 2565,\n end: 2566,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2566,\n end: 2568,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 2568,\n end: 2569,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2569,\n end: 2571,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2571,\n end: 2573,\n },\n TokenData {\n kind: \"LineComment\",\n text: \"// For...of loop\",\n start: 2573,\n end: 2589,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2589,\n end: 2591,\n },\n TokenData {\n kind: \"For\",\n text: \"for\",\n start: 2591,\n end: 2594,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2594,\n end: 2595,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2595,\n end: 2596,\n },\n TokenData {\n kind: \"Const\",\n text: \"const\",\n start: 2596,\n end: 2601,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2601,\n end: 2602,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"number\",\n start: 2602,\n end: 2608,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2608,\n end: 2609,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"of\",\n start: 2609,\n end: 2611,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2611,\n end: 2612,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"numbers\",\n start: 2612,\n end: 2619,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2619,\n end: 2620,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2620,\n end: 2621,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 2621,\n end: 2622,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2622,\n end: 2624,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2624,\n end: 2628,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"console\",\n start: 2628,\n end: 2635,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 2635,\n end: 2636,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"log\",\n start: 2636,\n end: 2639,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2639,\n end: 2640,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"number\",\n start: 2640,\n end: 2646,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2646,\n end: 2647,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 2647,\n end: 2648,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2648,\n end: 2650,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 2650,\n end: 2651,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2651,\n end: 2653,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2653,\n end: 2655,\n },\n TokenData {\n kind: \"LineComment\",\n text: \"// For...in loop\",\n start: 2655,\n end: 2671,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2671,\n end: 2673,\n },\n TokenData {\n kind: \"For\",\n text: \"for\",\n start: 2673,\n end: 2676,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2676,\n end: 2677,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2677,\n end: 2678,\n },\n TokenData {\n kind: \"Const\",\n text: \"const\",\n start: 2678,\n end: 2683,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2683,\n end: 2684,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"key\",\n start: 2684,\n end: 2687,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2687,\n end: 2688,\n },\n TokenData {\n kind: \"In\",\n text: \"in\",\n start: 2688,\n end: 2690,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2690,\n end: 2691,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"config\",\n start: 2691,\n end: 2697,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2697,\n end: 2698,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2698,\n end: 2699,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 2699,\n end: 2700,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2700,\n end: 2702,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2702,\n end: 2706,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"console\",\n start: 2706,\n end: 2713,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 2713,\n end: 2714,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"log\",\n start: 2714,\n end: 2717,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2717,\n end: 2718,\n },\n TokenData {\n kind: \"TemplateString\",\n text: \"`${key}: ${config[key]}`\",\n start: 2718,\n end: 2742,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2742,\n end: 2743,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 2743,\n end: 2744,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2744,\n end: 2746,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 2746,\n end: 2747,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2747,\n end: 2749,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2749,\n end: 2751,\n },\n TokenData {\n kind: \"LineComment\",\n text: \"// Switch statement\",\n start: 2751,\n end: 2770,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2770,\n end: 2772,\n },\n TokenData {\n kind: \"Function\",\n text: \"function\",\n start: 2772,\n end: 2780,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2780,\n end: 2781,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"getDay\",\n start: 2781,\n end: 2787,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2787,\n end: 2788,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"dayNumber\",\n start: 2788,\n end: 2797,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2797,\n end: 2798,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2798,\n end: 2799,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 2799,\n end: 2800,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2800,\n end: 2802,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2802,\n end: 2806,\n },\n TokenData {\n kind: \"Switch\",\n text: \"switch\",\n start: 2806,\n end: 2812,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2812,\n end: 2813,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2813,\n end: 2814,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"dayNumber\",\n start: 2814,\n end: 2823,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2823,\n end: 2824,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2824,\n end: 2825,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 2825,\n end: 2826,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2826,\n end: 2828,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2828,\n end: 2836,\n },\n TokenData {\n kind: \"Case\",\n text: \"case\",\n start: 2836,\n end: 2840,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2840,\n end: 2841,\n },\n TokenData {\n kind: \"NumericLiteral\",\n text: \"0\",\n start: 2841,\n end: 2842,\n },\n TokenData {\n kind: \"Colon\",\n text: \":\",\n start: 2842,\n end: 2843,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2843,\n end: 2845,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2845,\n end: 2857,\n },\n TokenData {\n kind: \"Return\",\n text: \"return\",\n start: 2857,\n end: 2863,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2863,\n end: 2864,\n },\n TokenData {\n kind: \"StringLiteral\",\n text: \"\\\"Sunday\\\"\",\n start: 2864,\n end: 2872,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 2872,\n end: 2873,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2873,\n end: 2875,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2875,\n end: 2883,\n },\n TokenData {\n kind: \"Case\",\n text: \"case\",\n start: 2883,\n end: 2887,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2887,\n end: 2888,\n },\n TokenData {\n kind: \"NumericLiteral\",\n text: \"1\",\n start: 2888,\n end: 2889,\n },\n TokenData {\n kind: \"Colon\",\n text: \":\",\n start: 2889,\n end: 2890,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2890,\n end: 2892,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2892,\n end: 2904,\n },\n TokenData {\n kind: \"Return\",\n text: \"return\",\n start: 2904,\n end: 2910,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2910,\n end: 2911,\n },\n TokenData {\n kind: \"StringLiteral\",\n text: \"\\\"Monday\\\"\",\n start: 2911,\n end: 2919,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 2919,\n end: 2920,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2920,\n end: 2922,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2922,\n end: 2930,\n },\n TokenData {\n kind: \"Case\",\n text: \"case\",\n start: 2930,\n end: 2934,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2934,\n end: 2935,\n },\n TokenData {\n kind: \"NumericLiteral\",\n text: \"2\",\n start: 2935,\n end: 2936,\n },\n TokenData {\n kind: \"Colon\",\n text: \":\",\n start: 2936,\n end: 2937,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2937,\n end: 2939,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2939,\n end: 2951,\n },\n TokenData {\n kind: \"Return\",\n text: \"return\",\n start: 2951,\n end: 2957,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2957,\n end: 2958,\n },\n TokenData {\n kind: \"StringLiteral\",\n text: \"\\\"Tuesday\\\"\",\n start: 2958,\n end: 2967,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 2967,\n end: 2968,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2968,\n end: 2970,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2970,\n end: 2978,\n },\n TokenData {\n kind: \"Case\",\n text: \"case\",\n start: 2978,\n end: 2982,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2982,\n end: 2983,\n },\n TokenData {\n kind: \"NumericLiteral\",\n text: \"3\",\n start: 2983,\n end: 2984,\n },\n TokenData {\n kind: \"Colon\",\n text: \":\",\n start: 2984,\n end: 2985,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2985,\n end: 2987,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2987,\n end: 2999,\n },\n TokenData {\n kind: \"Return\",\n text: \"return\",\n start: 2999,\n end: 3005,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3005,\n end: 3006,\n },\n TokenData {\n kind: \"StringLiteral\",\n text: \"\\\"Wednesday\\\"\",\n start: 3006,\n end: 3017,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 3017,\n end: 3018,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3018,\n end: 3020,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3020,\n end: 3028,\n },\n TokenData {\n kind: \"Case\",\n text: \"case\",\n start: 3028,\n end: 3032,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3032,\n end: 3033,\n },\n TokenData {\n kind: \"NumericLiteral\",\n text: \"4\",\n start: 3033,\n end: 3034,\n },\n TokenData {\n kind: \"Colon\",\n text: \":\",\n start: 3034,\n end: 3035,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3035,\n end: 3037,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3037,\n end: 3049,\n },\n TokenData {\n kind: \"Return\",\n text: \"return\",\n start: 3049,\n end: 3055,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3055,\n end: 3056,\n },\n TokenData {\n kind: \"StringLiteral\",\n text: \"\\\"Thursday\\\"\",\n start: 3056,\n end: 3066,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 3066,\n end: 3067,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3067,\n end: 3069,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3069,\n end: 3077,\n },\n TokenData {\n kind: \"Case\",\n text: \"case\",\n start: 3077,\n end: 3081,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3081,\n end: 3082,\n },\n TokenData {\n kind: \"NumericLiteral\",\n text: \"5\",\n start: 3082,\n end: 3083,\n },\n TokenData {\n kind: \"Colon\",\n text: \":\",\n start: 3083,\n end: 3084,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3084,\n end: 3086,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3086,\n end: 3098,\n },\n TokenData {\n kind: \"Return\",\n text: \"return\",\n start: 3098,\n end: 3104,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3104,\n end: 3105,\n },\n TokenData {\n kind: \"StringLiteral\",\n text: \"\\\"Friday\\\"\",\n start: 3105,\n end: 3113,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 3113,\n end: 3114,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3114,\n end: 3116,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3116,\n end: 3124,\n },\n TokenData {\n kind: \"Case\",\n text: \"case\",\n start: 3124,\n end: 3128,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3128,\n end: 3129,\n },\n TokenData {\n kind: \"NumericLiteral\",\n text: \"6\",\n start: 3129,\n end: 3130,\n },\n TokenData {\n kind: \"Colon\",\n text: \":\",\n start: 3130,\n end: 3131,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3131,\n end: 3133,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3133,\n end: 3145,\n },\n TokenData {\n kind: \"Return\",\n text: \"return\",\n start: 3145,\n end: 3151,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3151,\n end: 3152,\n },\n TokenData {\n kind: \"StringLiteral\",\n text: \"\\\"Saturday\\\"\",\n start: 3152,\n end: 3162,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 3162,\n end: 3163,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3163,\n end: 3165,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3165,\n end: 3173,\n },\n TokenData {\n kind: \"Default\",\n text: \"default\",\n start: 3173,\n end: 3180,\n },\n TokenData {\n kind: \"Colon\",\n text: \":\",\n start: 3180,\n end: 3181,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3181,\n end: 3183,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3183,\n end: 3195,\n },\n TokenData {\n kind: \"Return\",\n text: \"return\",\n start: 3195,\n end: 3201,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3201,\n end: 3202,\n },\n TokenData {\n kind: \"StringLiteral\",\n text: \"\\\"Invalid day\\\"\",\n start: 3202,\n end: 3215,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 3215,\n end: 3216,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3216,\n end: 3218,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3218,\n end: 3222,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 3222,\n end: 3223,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3223,\n end: 3225,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 3225,\n end: 3226,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3226,\n end: 3228,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3228,\n end: 3230,\n },\n TokenData {\n kind: \"LineComment\",\n text: \"// Error handling\",\n start: 3230,\n end: 3247,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3247,\n end: 3249,\n },\n TokenData {\n kind: \"Try\",\n text: \"try\",\n start: 3249,\n end: 3252,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3252,\n end: 3253,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 3253,\n end: 3254,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3254,\n end: 3256,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3256,\n end: 3260,\n },\n TokenData {\n kind: \"Const\",\n text: \"const\",\n start: 3260,\n end: 3265,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3265,\n end: 3266,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"result\",\n start: 3266,\n end: 3272,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3272,\n end: 3273,\n },\n TokenData {\n kind: \"Equal\",\n text: \"=\",\n start: 3273,\n end: 3274,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3274,\n end: 3275,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"JSON\",\n start: 3275,\n end: 3279,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 3279,\n end: 3280,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"parse\",\n start: 3280,\n end: 3285,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 3285,\n end: 3286,\n },\n TokenData {\n kind: \"StringLiteral\",\n text: \"'{\\\"invalid\\\": json}'\",\n start: 3286,\n end: 3305,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 3305,\n end: 3306,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 3306,\n end: 3307,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3307,\n end: 3309,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 3309,\n end: 3310,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3310,\n end: 3311,\n },\n TokenData {\n kind: \"Catch\",\n text: \"catch\",\n start: 3311,\n end: 3316,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3316,\n end: 3317,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 3317,\n end: 3318,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"error\",\n start: 3318,\n end: 3323,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 3323,\n end: 3324,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3324,\n end: 3325,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 3325,\n end: 3326,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3326,\n end: 3328,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3328,\n end: 3332,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"console\",\n start: 3332,\n end: 3339,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 3339,\n end: 3340,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"error\",\n start: 3340,\n end: 3345,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 3345,\n end: 3346,\n },\n TokenData {\n kind: \"StringLiteral\",\n text: \"\\\"JSON parsing failed:\\\"\",\n start: 3346,\n end: 3368,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3368,\n end: 3369,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3369,\n end: 3370,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"error\",\n start: 3370,\n end: 3375,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 3375,\n end: 3376,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"message\",\n start: 3376,\n end: 3383,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 3383,\n end: 3384,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 3384,\n end: 3385,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3385,\n end: 3387,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 3387,\n end: 3388,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3388,\n end: 3389,\n },\n TokenData {\n kind: \"Finally\",\n text: \"finally\",\n start: 3389,\n end: 3396,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3396,\n end: 3397,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 3397,\n end: 3398,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3398,\n end: 3400,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3400,\n end: 3404,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"console\",\n start: 3404,\n end: 3411,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 3411,\n end: 3412,\n },\n TokenData {\n kind: \"IdentifierName\",\n text: \"log\",\n start: 3412,\n end: 3415,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 3415,\n end: 3416,\n },\n TokenData {\n kind: \"StringLiteral\",\n text: \"\\\"Cleanup completed\\\"\",\n start: 3416,\n end: 3435,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 3435,\n end: 3436,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 3436,\n end: 3437,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3437,\n end: 3439,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 3439,\n end: 3440,\n },\n TokenData {\n kind: \"Error\",\n text: \"\",\n start: 3440,\n end: 3440,\n },\n ],\n errors: [],\n}" } [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass `--test main` [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] lexer::test_javascript_lexer [INFO] [stdout] [INFO] [stdout] test result: FAILED. 2 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "d36697c117f3717ec9ba3b6966ff245993b9bf8bf1fde559478cd1fe707f16df", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d36697c117f3717ec9ba3b6966ff245993b9bf8bf1fde559478cd1fe707f16df", kill_on_drop: false }` [INFO] [stdout] d36697c117f3717ec9ba3b6966ff245993b9bf8bf1fde559478cd1fe707f16df