1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-28 18:19:08 -05:00
denoland-deno/cli_snapshots/lib.rs
Ryan Dahl d43b43ca78
Refactor snapshot build (#2825)
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.
2019-09-02 17:07:11 -04:00

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}`);
"#,
));
}