UNPKG

1.01 kBJavaScriptView Raw
1import {get} from 'http';
2import {createContext, runInContext} from 'vm';
3import {equal, deepEqual} from 'assert';
4
5get('foo.json', function (res) {
6 console.log('status', res.statusCode);
7 var data = '';
8 res.on('data', function (d) {
9 data += d.toString();
10 }).on('error', function (e) {
11 console.log('error', e);
12 }).on('end', function () {
13 console.log(data);
14 if (global.document) {
15 afterMain();
16 } else {
17 afterWorker();
18 }
19 });
20})
21function afterMain() {
22 var context = createContext();
23
24 runInContext('var x = 1', context);
25 deepEqual(context, { x: 1 });
26
27 runInContext('var y = 2;', context);
28 var x = runInContext('++x', context);
29 equal(x, 2);
30 equal(context.x, 2);
31 equal(context.x, context.y);
32 console.log('ok main');
33}
34function afterWorker() {
35 var context = createContext({x: 0});
36
37 runInContext('x++', context);
38 deepEqual(context, { x: 1 });
39
40 var x = runInContext('++x', context);
41 equal(x, 2);
42 equal(context.x, 2);
43 console.log('ok worker');
44}