[INFO] cloning repository https://github.com/leshow/yew-todomvc [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/leshow/yew-todomvc" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fleshow%2Fyew-todomvc", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fleshow%2Fyew-todomvc'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] c28bbee68c3811a9408868dc08b8797030eed600 [INFO] checking leshow/yew-todomvc against try#3d9fdbff4f377de96b3a51174e7a64086bee9a5c for pr-81477 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fleshow%2Fyew-todomvc" "/workspace/builds/worker-12/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-12/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/leshow/yew-todomvc on toolchain 3d9fdbff4f377de96b3a51174e7a64086bee9a5c [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+3d9fdbff4f377de96b3a51174e7a64086bee9a5c" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/leshow/yew-todomvc [INFO] finished tweaking git repo https://github.com/leshow/yew-todomvc [INFO] tweaked toml for git repo https://github.com/leshow/yew-todomvc written to /workspace/builds/worker-12/source/Cargo.toml [INFO] crate git repo https://github.com/leshow/yew-todomvc already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+3d9fdbff4f377de96b3a51174e7a64086bee9a5c" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/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:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+3d9fdbff4f377de96b3a51174e7a64086bee9a5c" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] a2cf1ab6e80f50a737844225d76a053c88f205c32dfb8e87f8e0ea6ae02ef3e9 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "a2cf1ab6e80f50a737844225d76a053c88f205c32dfb8e87f8e0ea6ae02ef3e9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "a2cf1ab6e80f50a737844225d76a053c88f205c32dfb8e87f8e0ea6ae02ef3e9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a2cf1ab6e80f50a737844225d76a053c88f205c32dfb8e87f8e0ea6ae02ef3e9", kill_on_drop: false }` [INFO] [stdout] a2cf1ab6e80f50a737844225d76a053c88f205c32dfb8e87f8e0ea6ae02ef3e9 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/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" "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:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+3d9fdbff4f377de96b3a51174e7a64086bee9a5c" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 221c15fac67b8a068f5850d46966a43345c831498d502cf63d7471568ed0ba33 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "221c15fac67b8a068f5850d46966a43345c831498d502cf63d7471568ed0ba33", kill_on_drop: false }` [INFO] [stderr] Checking itoa v0.3.4 [INFO] [stderr] Checking num-traits v0.1.41 [INFO] [stderr] Checking serde v1.0.25 [INFO] [stderr] Checking dtoa v0.4.2 [INFO] [stderr] Checking serde_json v1.0.8 [INFO] [stderr] Checking stdweb v0.2.0 (https://github.com/koute/stdweb#b0adf41c) [INFO] [stdout] error: Trailing semicolon in macro [INFO] [stdout] --> /opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs:416:26 [INFO] [stdout] | [INFO] [stdout] 416 | ); [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/initialization.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | / js! { @(no_return) [INFO] [stdout] 18 | | Module.STDWEB = {}; [INFO] [stdout] 19 | | }; [INFO] [stdout] | |______- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `_js_impl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: Trailing semicolon in macro [INFO] [stdout] --> /opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs:321:31 [INFO] [stdout] | [INFO] [stdout] 321 | __js_raw_asm!( $code ); [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/initialization.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | / js! { @(no_return) [INFO] [stdout] 18 | | Module.STDWEB = {}; [INFO] [stdout] 19 | | }; [INFO] [stdout] | |______- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `_js_impl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: Trailing semicolon in macro [INFO] [stdout] --> /opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs:416:26 [INFO] [stdout] | [INFO] [stdout] 416 | ); [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/initialization.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | / js! { @(no_return) [INFO] [stdout] 23 | | Module.STDWEB.alloc = _malloc; [INFO] [stdout] 24 | | Module.STDWEB.dyncall = Runtime.dynCall; [INFO] [stdout] 25 | | Module.STDWEB.utf8_len = lengthBytesUTF8; [INFO] [stdout] 26 | | }; [INFO] [stdout] | |______- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `_js_impl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: Trailing semicolon in macro [INFO] [stdout] --> /opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs:321:31 [INFO] [stdout] | [INFO] [stdout] 321 | __js_raw_asm!( $code ); [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/initialization.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | / js! { @(no_return) [INFO] [stdout] 23 | | Module.STDWEB.alloc = _malloc; [INFO] [stdout] 24 | | Module.STDWEB.dyncall = Runtime.dynCall; [INFO] [stdout] 25 | | Module.STDWEB.utf8_len = lengthBytesUTF8; [INFO] [stdout] 26 | | }; [INFO] [stdout] | |______- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `_js_impl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] {"reason":"compiler-message","package_id":"stdweb 0.2.0 (git+https://github.com/koute/stdweb#b0adf41c10b833b03f0e6e3f957e0af596d232e8)","manifest_path":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"stdweb","src_path":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"message":{"message":"Trailing semicolon in macro","code":null,"level":"error","spans":[{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":24108,"byte_end":24109,"line_start":416,"line_end":416,"column_start":26,"column_end":27,"is_primary":true,"text":[{"text":" );","highlight_start":26,"highlight_end":27}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25010,"byte_end":25087,"line_start":437,"line_end":437,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25200,"byte_end":25277,"line_start":441,"line_end":441,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25010,"byte_end":25087,"line_start":437,"line_end":437,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25010,"byte_end":25087,"line_start":437,"line_end":437,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25200,"byte_end":25277,"line_start":441,"line_end":441,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25010,"byte_end":25087,"line_start":437,"line_end":437,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25010,"byte_end":25087,"line_start":437,"line_end":437,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25200,"byte_end":25277,"line_start":441,"line_end":441,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25010,"byte_end":25087,"line_start":437,"line_end":437,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25010,"byte_end":25087,"line_start":437,"line_end":437,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25200,"byte_end":25277,"line_start":441,"line_end":441,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25010,"byte_end":25087,"line_start":437,"line_end":437,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25010,"byte_end":25087,"line_start":437,"line_end":437,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25200,"byte_end":25277,"line_start":441,"line_end":441,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25010,"byte_end":25087,"line_start":437,"line_end":437,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25200,"byte_end":25277,"line_start":441,"line_end":441,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":24820,"byte_end":24897,"line_start":433,"line_end":433,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25010,"byte_end":25087,"line_start":437,"line_end":437,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25200,"byte_end":25277,"line_start":441,"line_end":441,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25010,"byte_end":25087,"line_start":437,"line_end":437,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25010,"byte_end":25087,"line_start":437,"line_end":437,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25200,"byte_end":25277,"line_start":441,"line_end":441,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25010,"byte_end":25087,"line_start":437,"line_end":437,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25010,"byte_end":25087,"line_start":437,"line_end":437,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25200,"byte_end":25277,"line_start":441,"line_end":441,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25010,"byte_end":25087,"line_start":437,"line_end":437,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25010,"byte_end":25087,"line_start":437,"line_end":437,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25200,"byte_end":25277,"line_start":441,"line_end":441,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25010,"byte_end":25087,"line_start":437,"line_end":437,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25200,"byte_end":25277,"line_start":441,"line_end":441,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":24820,"byte_end":24897,"line_start":433,"line_end":433,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25010,"byte_end":25087,"line_start":437,"line_end":437,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25010,"byte_end":25087,"line_start":437,"line_end":437,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25200,"byte_end":25277,"line_start":441,"line_end":441,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25010,"byte_end":25087,"line_start":437,"line_end":437,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25010,"byte_end":25087,"line_start":437,"line_end":437,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25200,"byte_end":25277,"line_start":441,"line_end":441,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25010,"byte_end":25087,"line_start":437,"line_end":437,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25010,"byte_end":25087,"line_start":437,"line_end":437,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25200,"byte_end":25277,"line_start":441,"line_end":441,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25010,"byte_end":25087,"line_start":437,"line_end":437,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25200,"byte_end":25277,"line_start":441,"line_end":441,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":24820,"byte_end":24897,"line_start":433,"line_end":433,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25010,"byte_end":25087,"line_start":437,"line_end":437,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25010,"byte_end":25087,"line_start":437,"line_end":437,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25200,"byte_end":25277,"line_start":441,"line_end":441,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25010,"byte_end":25087,"line_start":437,"line_end":437,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25010,"byte_end":25087,"line_start":437,"line_end":437,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25200,"byte_end":25277,"line_start":441,"line_end":441,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25010,"byte_end":25087,"line_start":437,"line_end":437,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25200,"byte_end":25277,"line_start":441,"line_end":441,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":24820,"byte_end":24897,"line_start":433,"line_end":433,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25010,"byte_end":25087,"line_start":437,"line_end":437,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25010,"byte_end":25087,"line_start":437,"line_end":437,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25200,"byte_end":25277,"line_start":441,"line_end":441,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25010,"byte_end":25087,"line_start":437,"line_end":437,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25200,"byte_end":25277,"line_start":441,"line_end":441,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":24820,"byte_end":24897,"line_start":433,"line_end":433,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25010,"byte_end":25087,"line_start":437,"line_end":437,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25200,"byte_end":25277,"line_start":441,"line_end":441,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":24820,"byte_end":24897,"line_start":433,"line_end":433,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25010,"byte_end":25087,"line_start":437,"line_end":437,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25010,"byte_end":25087,"line_start":437,"line_end":437,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25010,"byte_end":25087,"line_start":437,"line_end":437,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25010,"byte_end":25087,"line_start":437,"line_end":437,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25010,"byte_end":25087,"line_start":437,"line_end":437,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":24820,"byte_end":24897,"line_start":433,"line_end":433,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25010,"byte_end":25087,"line_start":437,"line_end":437,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25010,"byte_end":25087,"line_start":437,"line_end":437,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":24820,"byte_end":24897,"line_start":433,"line_end":433,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25010,"byte_end":25087,"line_start":437,"line_end":437,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":24820,"byte_end":24897,"line_start":433,"line_end":433,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25010,"byte_end":25087,"line_start":437,"line_end":437,"column_start":9,"column_end":86,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":9,"highlight_end":86}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":25561,"byte_end":25627,"line_start":449,"line_end":449,"column_start":9,"column_end":75,"is_primary":false,"text":[{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":9,"highlight_end":75}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":26734,"byte_end":26836,"line_start":482,"line_end":482,"column_start":9,"column_end":111,"is_primary":false,"text":[{"text":" _js_impl!( @call [_js_impl!( @stringify [$($flags)*] -> $($token)* ), [$($flags)*]] [] -> $($token)* )","highlight_start":9,"highlight_end":111}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/initialization.rs","byte_start":2025,"byte_end":4395,"line_start":63,"line_end":105,"column_start":5,"column_end":7,"is_primary":false,"text":[{"text":" js! { @(no_return)","highlight_start":5,"highlight_end":23},{"text":" // This is based on code from Emscripten's preamble.js.","highlight_start":1,"highlight_end":64},{"text":" Module.STDWEB.to_utf8 = function to_utf8( str, addr ) {","highlight_start":1,"highlight_end":64},{"text":" for( var i = 0; i < str.length; ++i ) {","highlight_start":1,"highlight_end":52},{"text":" // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8.","highlight_start":1,"highlight_end":169},{"text":" // See http://unicode.org/faq/utf_bom.html#utf16-3","highlight_start":1,"highlight_end":67},{"text":" // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629","highlight_start":1,"highlight_end":176},{"text":" var u = str.charCodeAt( i ); // possibly a lead surrogate","highlight_start":1,"highlight_end":74},{"text":" if( u >= 0xD800 && u <= 0xDFFF ) {","highlight_start":1,"highlight_end":51},{"text":" u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt( ++i ) & 0x3FF);","highlight_start":1,"highlight_end":89},{"text":" }","highlight_start":1,"highlight_end":18},{"text":"","highlight_start":1,"highlight_end":1},{"text":" if( u <= 0x7F ) {","highlight_start":1,"highlight_end":34},{"text":" HEAPU8[ addr++ ] = u;","highlight_start":1,"highlight_end":42},{"text":" } else if( u <= 0x7FF ) {","highlight_start":1,"highlight_end":42},{"text":" HEAPU8[ addr++ ] = 0xC0 | (u >> 6);","highlight_start":1,"highlight_end":56},{"text":" HEAPU8[ addr++ ] = 0x80 | (u & 63);","highlight_start":1,"highlight_end":56},{"text":" } else if( u <= 0xFFFF ) {","highlight_start":1,"highlight_end":43},{"text":" HEAPU8[ addr++ ] = 0xE0 | (u >> 12);","highlight_start":1,"highlight_end":57},{"text":" HEAPU8[ addr++ ] = 0x80 | ((u >> 6) & 63);","highlight_start":1,"highlight_end":63},{"text":" HEAPU8[ addr++ ] = 0x80 | (u & 63);","highlight_start":1,"highlight_end":56},{"text":" } else if( u <= 0x1FFFFF ) {","highlight_start":1,"highlight_end":45},{"text":" HEAPU8[ addr++ ] = 0xF0 | (u >> 18);","highlight_start":1,"highlight_end":57},{"text":" HEAPU8[ addr++ ] = 0x80 | ((u >> 12) & 63);","highlight_start":1,"highlight_end":64},{"text":" HEAPU8[ addr++ ] = 0x80 | ((u >> 6) & 63);","highlight_start":1,"highlight_end":63},{"text":" HEAPU8[ addr++ ] = 0x80 | (u & 63);","highlight_start":1,"highlight_end":56},{"text":" } else if( u <= 0x3FFFFFF ) {","highlight_start":1,"highlight_end":46},{"text":" HEAPU8[ addr++ ] = 0xF8 | (u >> 24);","highlight_start":1,"highlight_end":57},{"text":" HEAPU8[ addr++ ] = 0x80 | ((u >> 18) & 63);","highlight_start":1,"highlight_end":64},{"text":" HEAPU8[ addr++ ] = 0x80 | ((u >> 12) & 63);","highlight_start":1,"highlight_end":64},{"text":" HEAPU8[ addr++ ] = 0x80 | ((u >> 6) & 63);","highlight_start":1,"highlight_end":63},{"text":" HEAPU8[ addr++ ] = 0x80 | (u & 63);","highlight_start":1,"highlight_end":56},{"text":" } else {","highlight_start":1,"highlight_end":25},{"text":" HEAPU8[ addr++ ] = 0xFC | (u >> 30);","highlight_start":1,"highlight_end":57},{"text":" HEAPU8[ addr++ ] = 0x80 | ((u >> 24) & 63);","highlight_start":1,"highlight_end":64},{"text":" HEAPU8[ addr++ ] = 0x80 | ((u >> 18) & 63);","highlight_start":1,"highlight_end":64},{"text":" HEAPU8[ addr++ ] = 0x80 | ((u >> 12) & 63);","highlight_start":1,"highlight_end":64},{"text":" HEAPU8[ addr++ ] = 0x80 | ((u >> 6) & 63);","highlight_start":1,"highlight_end":63},{"text":" HEAPU8[ addr++ ] = 0x80 | (u & 63);","highlight_start":1,"highlight_end":56},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},"macro_decl_name":"js!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":26665,"byte_end":26969,"line_start":480,"line_end":488,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! js {","highlight_start":1,"highlight_end":18},{"text":" (@($($flags:tt),*) $($token:tt)*) => {","highlight_start":1,"highlight_end":43},{"text":" _js_impl!( @call [_js_impl!( @stringify [$($flags)*] -> $($token)* ), [$($flags)*]] [] -> $($token)* )","highlight_start":1,"highlight_end":111},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ($($token:tt)*) => {","highlight_start":1,"highlight_end":25},{"text":" _js_impl!( @call [_js_impl!( @stringify [] -> $($token)* ), []] [] -> $($token)* )","highlight_start":1,"highlight_end":91},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"_js_impl!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs","byte_start":9668,"byte_end":25636,"line_start":213,"line_end":451,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! _js_impl {","highlight_start":1,"highlight_end":24},{"text":" (@_inc @_stringify \"0\" $($rest:tt)*) => { _js_impl!( @_stringify \"1\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"1\" $($rest:tt)*) => { _js_impl!( @_stringify \"2\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"2\" $($rest:tt)*) => { _js_impl!( @_stringify \"3\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"3\" $($rest:tt)*) => { _js_impl!( @_stringify \"4\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"4\" $($rest:tt)*) => { _js_impl!( @_stringify \"5\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"5\" $($rest:tt)*) => { _js_impl!( @_stringify \"6\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"6\" $($rest:tt)*) => { _js_impl!( @_stringify \"7\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"7\" $($rest:tt)*) => { _js_impl!( @_stringify \"8\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"8\" $($rest:tt)*) => { _js_impl!( @_stringify \"9\" $($rest)* ) };","highlight_start":1,"highlight_end":88},{"text":" (@_inc @_stringify \"9\" $($rest:tt)*) => { _js_impl!( @_stringify \"10\" $($rest)* ) };","highlight_start":1,"highlight_end":89},{"text":" (@_inc @_stringify \"10\" $($rest:tt)*) => { _js_impl!( @_stringify \"11\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"11\" $($rest:tt)*) => { _js_impl!( @_stringify \"12\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"12\" $($rest:tt)*) => { _js_impl!( @_stringify \"13\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"13\" $($rest:tt)*) => { _js_impl!( @_stringify \"14\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"14\" $($rest:tt)*) => { _js_impl!( @_stringify \"15\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"15\" $($rest:tt)*) => { _js_impl!( @_stringify \"16\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":" (@_inc @_stringify \"16\" $($rest:tt)*) => { _js_impl!( @_stringify \"17\" $($rest)* ) };","highlight_start":1,"highlight_end":90},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$terminator:tt $($terminator_rest:tt)*] [$($out:tt)*] -> [] $next:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator_rest)*] [$($out)* ($terminator)] -> $next $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [] [$($out:tt)*] -> []) => {","highlight_start":1,"highlight_end":62},{"text":" concat!( $(concat! $out),* )","highlight_start":1,"highlight_end":37},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [($($inner:tt)*) $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\")\" $($terminator)*] [$($out)* (\"(\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [[$($inner:tt)*] $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"]\" $($terminator)*] [$($out)* (\"[\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [{$($inner:tt)*} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":126},{"text":" _js_impl!( @_stringify $arg_counter [\"}\" $($terminator)*] [$($out)* (\"{\")] -> [$($inner)*] [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":128},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [@{$arg:expr} $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":123},{"text":" _js_impl!( @_inc @_stringify $arg_counter [$($terminator)*] [$($out)* (\"Module.STDWEB.to_js($\") ($arg_counter) (\")\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":158},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [++ $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"++\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [-- $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":113},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"--\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [=== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"===\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [!== $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":114},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (\"!==\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":113},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt . $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":122},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\".\")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt] $($rest:tt)*) => {","highlight_start":1,"highlight_end":102},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token ))] -> [] $($rest)* )","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@_stringify $arg_counter:tt [$($terminator:tt)*] [$($out:tt)*] -> [$token:tt $($remaining:tt)*] $($rest:tt)*) => {","highlight_start":1,"highlight_end":120},{"text":" _js_impl!( @_stringify $arg_counter [$($terminator)*] [$($out)* (stringify!( $token )) (\" \")] -> [$($remaining)*] $($rest)* )","highlight_start":1,"highlight_end":134},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@stringify [$($flags:tt)*] -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":" _js_impl!( @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":51},{"text":" _js_impl!( @_stringify \"0\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" _js_impl!( @_stringify \"1\" [] [] -> [$($rest)*] )","highlight_start":1,"highlight_end":62},{"text":" })","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if no_return in [no_return $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":99},{"text":" $($true_case)*","highlight_start":1,"highlight_end":23},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":81},{"text":" $($false_case)*","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@if $condition:tt in [$token:tt $($rest:tt)*] {$($true_case:tt)*} else {$($false_case:tt)*}) => {","highlight_start":1,"highlight_end":103},{"text":" _js_impl!( @if $condition in [$($rest)*] {$($true_case)*} else {$($false_case)*} );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@prepare $memory_required:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":64},{"text":" (@prepare $memory_required:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" let $name = $arg;","highlight_start":1,"highlight_end":26},{"text":" let $name = $crate::private::IntoNewtype::into_newtype( $name );","highlight_start":1,"highlight_end":73},{"text":" $memory_required += $crate::private::JsSerializableOwned::memory_required_owned( &$name );","highlight_start":1,"highlight_end":99},{"text":" _js_impl!( @prepare $memory_required [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":83},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@serialize $arena:ident [] [$($names:tt)*]) => {};","highlight_start":1,"highlight_end":56},{"text":" (@serialize $arena:ident [$arg:tt $($rest_args:tt)*] [$name:tt $($rest_names:tt)*]) => {","highlight_start":1,"highlight_end":93},{"text":" let mut $name = Some( $name );","highlight_start":1,"highlight_end":39},{"text":" let $name = $crate::private::JsSerializableOwned::into_js_owned( &mut $name, &$arena );","highlight_start":1,"highlight_end":96},{"text":" let $name = &$name as *const _;","highlight_start":1,"highlight_end":40},{"text":" _js_impl!( @serialize $arena [$($rest_args)*] [$($rest_names)*] );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call_emscripten [$code:expr] [] [$($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":64},{"text":" __js_raw_asm!( $code );","highlight_start":1,"highlight_end":32},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Autogenerated with the following Ruby script:","highlight_start":1,"highlight_end":53},{"text":" // args, names, params = [], [], []","highlight_start":1,"highlight_end":40},{"text":" // 1.upto( 16 ) do |nth|","highlight_start":1,"highlight_end":29},{"text":" // args << \"$a#{nth}:tt\"","highlight_start":1,"highlight_end":33},{"text":" // names << \"$a#{nth}_name:tt\"","highlight_start":1,"highlight_end":39},{"text":" // params << \"$a#{nth}_name\"","highlight_start":1,"highlight_end":37},{"text":" // puts \"(@call_emscripten [$code:expr] [#{args.join ' '}] [#{names.join ' '} $($arg_names:tt)*]) => {\"","highlight_start":1,"highlight_end":112},{"text":" // puts \" __js_raw_asm!( $code, #{params.join ', '} );\"","highlight_start":1,"highlight_end":67},{"text":" // puts \"};\"","highlight_start":1,"highlight_end":21},{"text":" // end","highlight_start":1,"highlight_end":11},{"text":" (@call_emscripten [$code:expr] [$a1:tt] [$a1_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":82},{"text":" __js_raw_asm!( $code, $a1_name );","highlight_start":1,"highlight_end":42},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt] [$a1_name:tt $a2_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":101},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name );","highlight_start":1,"highlight_end":52},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":120},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name );","highlight_start":1,"highlight_end":62},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":139},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name );","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":158},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name );","highlight_start":1,"highlight_end":82},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":177},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name );","highlight_start":1,"highlight_end":92},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":196},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name );","highlight_start":1,"highlight_end":102},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":215},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name );","highlight_start":1,"highlight_end":112},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":234},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name );","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":255},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name );","highlight_start":1,"highlight_end":133},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":276},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name );","highlight_start":1,"highlight_end":144},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":297},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name );","highlight_start":1,"highlight_end":155},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":318},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name );","highlight_start":1,"highlight_end":166},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":339},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name );","highlight_start":1,"highlight_end":177},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":360},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name );","highlight_start":1,"highlight_end":188},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":381},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name );","highlight_start":1,"highlight_end":199},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@call_emscripten [$code:expr] [$a1:tt $a2:tt $a3:tt $a4:tt $a5:tt $a6:tt $a7:tt $a8:tt $a9:tt $a10:tt $a11:tt $a12:tt $a13:tt $a14:tt $a15:tt $a16:tt $a17:tt] [$a1_name:tt $a2_name:tt $a3_name:tt $a4_name:tt $a5_name:tt $a6_name:tt $a7_name:tt $a8_name:tt $a9_name:tt $a10_name:tt $a11_name:tt $a12_name:tt $a13_name:tt $a14_name:tt $a15_name:tt $a16_name:tt $a17_name:tt $($arg_names:tt)*]) => {","highlight_start":1,"highlight_end":402},{"text":" __js_raw_asm!( $code, $a1_name, $a2_name, $a3_name, $a4_name, $a5_name, $a6_name, $a7_name, $a8_name, $a9_name, $a10_name, $a11_name, $a12_name, $a13_name, $a14_name, $a15_name, $a16_name, $a17_name );","highlight_start":1,"highlight_end":210},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" //","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] ->) => {","highlight_start":1,"highlight_end":65},{"text":" // It'd be nice to put at least some of this inside a function inside the crate,","highlight_start":1,"highlight_end":89},{"text":" // but then it wouldn't work (I tried!) as the string with the code wouldn't be","highlight_start":1,"highlight_end":88},{"text":" // passed as a direct reference to a constant, and Emscripten needs that to actually","highlight_start":1,"highlight_end":93},{"text":" // use the JavaScript code we're passing to it.","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if cfg!( test ) {","highlight_start":1,"highlight_end":30},{"text":" $crate::initialize();","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut memory_required = 0;","highlight_start":1,"highlight_end":41},{"text":" _js_impl!( @prepare memory_required [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":119},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_variables)]","highlight_start":1,"highlight_end":39},{"text":" let arena = $crate::private::PreallocatedArena::new( memory_required );","highlight_start":1,"highlight_end":84},{"text":"","highlight_start":1,"highlight_end":1},{"text":" _js_impl!( @serialize arena [$($args)*] [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15] );","highlight_start":1,"highlight_end":111},{"text":" arena.assert_no_free_space_left();","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $crate::private::noop( &mut memory_required );","highlight_start":1,"highlight_end":59},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(unused_unsafe)]","highlight_start":1,"highlight_end":36},{"text":" unsafe {","highlight_start":1,"highlight_end":21},{"text":" _js_impl!(","highlight_start":1,"highlight_end":27},{"text":" @if no_return in [$($flags)*] {","highlight_start":1,"highlight_end":52},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [$code]","highlight_start":1,"highlight_end":36},{"text":" [$($args)*]","highlight_start":1,"highlight_end":40},{"text":" [a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":84},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" } else {{","highlight_start":1,"highlight_end":30},{"text":" let mut result: $crate::private::SerializedValue = Default::default();","highlight_start":1,"highlight_end":95},{"text":" _js_impl!(","highlight_start":1,"highlight_end":35},{"text":" @call_emscripten","highlight_start":1,"highlight_end":45},{"text":" [concat!( \"Module.STDWEB.from_js($0, (function(){\", $code, \"})());\\0\" )]","highlight_start":1,"highlight_end":101},{"text":" [RESULT $($args)*]","highlight_start":1,"highlight_end":47},{"text":" [(&mut result as *mut _) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]","highlight_start":1,"highlight_end":108},{"text":" );","highlight_start":1,"highlight_end":27},{"text":" result.deserialize()","highlight_start":1,"highlight_end":45},{"text":" }}","highlight_start":1,"highlight_end":23},{"text":" )","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> { $($inner:tt)* } $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> ( $($inner:tt)* ) $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> [ $($inner:tt)* ] $($rest:tt)*) => {","highlight_start":1,"highlight_end":96},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($inner)* $($rest)* );","highlight_start":1,"highlight_end":86},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> @{$arg:expr} $($rest:tt)*) => {","highlight_start":1,"highlight_end":91},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)* $arg] -> $($rest)* );","highlight_start":1,"highlight_end":80},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (@call [$code:expr, [$($flags:tt)*]] [$($args:tt)*] -> $token:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":88},{"text":" _js_impl!( @call [$code, [$($flags)*]] [$($args)*] -> $($rest)* );","highlight_start":1,"highlight_end":75},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror\u001b[0m\u001b[0m\u001b[1m: Trailing semicolon in macro\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0m/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/macros.rs:416:26\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m416\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m );\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9m^\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m::: \u001b[0m\u001b[0m/opt/rustwide/cargo-home/git/checkouts/stdweb-66ebc2cc69682dc2/b0adf41/src/webcore/initialization.rs:63:5\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m63\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m/\u001b[0m\u001b[0m \u001b[0m\u001b[0m js! { @(no_return)\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m64\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m // This is based on code from Emscripten's preamble.js.\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m65\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m Module.STDWEB.to_utf8 = function to_utf8( str, addr ) {\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m66\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m for( var i = 0; i < str.length; ++i ) {\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m...\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m104\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m };\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m105\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m };\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|______-\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12min this macro invocation\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: this error originates in the macro `_js_impl` (in Nightly builds, run with -Z macro-backtrace for more info)\u001b[0m\n\n"}} [WARN] too much data in the log, truncating it