diff options
| author | Michael Howell <michael@notriddle.com> | 2023-12-14 19:31:29 -0700 |
|---|---|---|
| committer | Michael Howell <michael@notriddle.com> | 2023-12-14 20:08:53 -0700 |
| commit | 09c8fd35ac1e24416207feaae04a499768994498 (patch) | |
| tree | 52aeaf2bd68c6668677290c123ed5990bca85f0f | |
| parent | de686cbc65478db53e3d51c52497685e852cc092 (diff) | |
| download | rust-09c8fd35ac1e24416207feaae04a499768994498.tar.gz rust-09c8fd35ac1e24416207feaae04a499768994498.zip | |
rustdoc-search: fix a race condition in search index loading
`var` declare it in the global scope, and `const` does not. It needs to be declared in global scope.
| -rw-r--r-- | src/librustdoc/html/render/write_shared.rs | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/librustdoc/html/render/write_shared.rs b/src/librustdoc/html/render/write_shared.rs index 4b5d1c0d87c..c4a6e920031 100644 --- a/src/librustdoc/html/render/write_shared.rs +++ b/src/librustdoc/html/render/write_shared.rs @@ -297,7 +297,10 @@ pub(super) fn write_shared( .replace("\\\"", "\\\\\"") )); all_sources.sort(); - let mut v = String::from("const srcIndex = new Map(JSON.parse('[\\\n"); + // This needs to be `var`, not `const`. + // This variable needs declared in the current global scope so that if + // src-script.js loads first, it can pick it up. + let mut v = String::from("var srcIndex = new Map(JSON.parse('[\\\n"); v.push_str(&all_sources.join(",\\\n")); v.push_str("\\\n]'));\ncreateSrcSidebar();\n"); Ok(v.into_bytes()) @@ -317,7 +320,10 @@ pub(super) fn write_shared( // with rustdoc running in parallel. all_indexes.sort(); write_invocation_specific("search-index.js", &|| { - let mut v = String::from("const searchIndex = new Map(JSON.parse('[\\\n"); + // This needs to be `var`, not `const`. + // This variable needs declared in the current global scope so that if + // search.js loads first, it can pick it up. + let mut v = String::from("var searchIndex = new Map(JSON.parse('[\\\n"); v.push_str(&all_indexes.join(",\\\n")); v.push_str( r#"\ |
