test ts
This commit is contained in:
29
dist/app.mjs
vendored
Normal file
29
dist/app.mjs
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
import VM from 'isolated-vm';
|
||||
|
||||
async function main() {
|
||||
const isolate = new VM.Isolate({
|
||||
// 其他配置项\
|
||||
memoryLimit: 4 * 1024 * 1024 * 1024
|
||||
});
|
||||
const context = isolate.createContextSync();
|
||||
const jail = context.global;
|
||||
jail.setSync("global", jail.derefInto());
|
||||
jail.setSync("log", function(...args) {
|
||||
console.log(...args);
|
||||
});
|
||||
context.evalSync('log("hello world")');
|
||||
const hostile = isolate.compileScriptSync(`
|
||||
const storage = [];
|
||||
const twoMegabytes = 1024 * 1024 * 2;
|
||||
while (true) {
|
||||
const array = new Uint8Array(twoMegabytes);
|
||||
for (let ii = 0; ii < twoMegabytes; ii += 4096) {
|
||||
array[ii] = 1; // we have to put something in the array to flush to real memory
|
||||
}
|
||||
storage.push(array);
|
||||
log('I\\'ve wasted '+ (storage.length * 2)+ 'MB');
|
||||
}
|
||||
`);
|
||||
hostile.run(context).catch((err) => console.error(err));
|
||||
}
|
||||
main().catch(console.error);
|
||||
Reference in New Issue
Block a user