This commit is contained in:
Daniel Xie 2018-08-02 10:08:19 -05:00
commit 702fdf307a
2 changed files with 0 additions and 43 deletions

@ -1,4 +1,3 @@
import {registerEnv, unregisterEnv, makeEnvHeader} from "./NetscriptJSPreamble";
import {makeRuntimeRejectMsg} from "./NetscriptEvaluator";
// Makes a blob that contains the code of a given script.

@ -1,42 +0,0 @@
// A utility function that adds a preamble to each Netscript JS
// script. This preamble will set all the global functions and
// variables appropriately for the module.
//
// One caveat is that we don't allow the variables in the preable
// to change. Unlike in normal Javascript, this would not change
// properties of self. It would instead just change the variable
// within the given module -- not good! Users should not really
// need to do this anyway.
import uuidv4 from "uuid/v4";
import {sprintf} from "sprintf-js";
window.__NSJS__environments = {};
// Returns the UUID for the env.
export function registerEnv(env) {
const uuid = uuidv4();
window.__NSJS__environments[uuid] = env;
return uuid;
}
export function unregisterEnv(uuid) {
delete window.__NSJS__environments[uuid];
}
export function makeEnvHeader(uuid) {
if (!(uuid in window.__NSJS__environments)) throw new Error("uuid is not in the environment" + uuid);
const env = window.__NSJS__environments[uuid];
var envLines = [];
for (const prop in env) {
envLines.push("const ", prop, " = ", "__NSJS_ENV[\"", prop, "\"];\n");
}
return sprintf(`
'use strict';
const __NSJS_ENV = window.__NSJS__environments['%s'];
// The global variable assignments (hack, weaken, etc.).
%s
`, uuid, envLines.join(""));
}