mirror of
https://github.com/denoland/deno.git
synced 2024-12-28 18:19:08 -05:00
d43b43ca78
Instead of using core/snapshot_creator.rs, instead two crates are introduced which allow building the snapshot during build.rs. Rollup is removed and replaced with our own bundler. This removes the Node build dependency. Modules in //js now use Deno-style imports with file extensions, rather than Node style extensionless imports. This improves incremental build time when changes are made to //js files by about 40 seconds.
43 lines
1.2 KiB
Rust
43 lines
1.2 KiB
Rust
pub static CLI_SNAPSHOT: &[u8] =
|
|
include_bytes!(concat!(env!("OUT_DIR"), "/CLI_SNAPSHOT.bin"));
|
|
pub static CLI_SNAPSHOT_MAP: &[u8] =
|
|
include_bytes!(concat!(env!("OUT_DIR"), "/CLI_SNAPSHOT.js.map"));
|
|
pub static CLI_SNAPSHOT_DTS: &[u8] =
|
|
include_bytes!(concat!(env!("OUT_DIR"), "/CLI_SNAPSHOT.d.ts"));
|
|
|
|
pub static COMPILER_SNAPSHOT: &[u8] =
|
|
include_bytes!(concat!(env!("OUT_DIR"), "/COMPILER_SNAPSHOT.bin"));
|
|
pub static COMPILER_SNAPSHOT_MAP: &[u8] =
|
|
include_bytes!(concat!(env!("OUT_DIR"), "/COMPILER_SNAPSHOT.js.map"));
|
|
pub static COMPILER_SNAPSHOT_DTS: &[u8] =
|
|
include_bytes!(concat!(env!("OUT_DIR"), "/COMPILER_SNAPSHOT.d.ts"));
|
|
|
|
#[test]
|
|
fn cli_snapshot() {
|
|
let mut isolate =
|
|
deno::Isolate::new(deno::StartupData::Snapshot(CLI_SNAPSHOT), false);
|
|
deno::js_check(isolate.execute(
|
|
"<anon>",
|
|
r#"
|
|
if (!window) {
|
|
throw Error("bad");
|
|
}
|
|
console.log("we have console.log!!!");
|
|
"#,
|
|
));
|
|
}
|
|
|
|
#[test]
|
|
fn compiler_snapshot() {
|
|
let mut isolate =
|
|
deno::Isolate::new(deno::StartupData::Snapshot(COMPILER_SNAPSHOT), false);
|
|
deno::js_check(isolate.execute(
|
|
"<anon>",
|
|
r#"
|
|
if (!compilerMain) {
|
|
throw Error("bad");
|
|
}
|
|
console.log(`ts version: ${ts.version}`);
|
|
"#,
|
|
));
|
|
}
|