1 | import {get} from 'http';
|
2 | import {createContext, runInContext} from 'vm';
|
3 | import {equal, deepEqual} from 'assert';
|
4 |
|
5 | get('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 | })
|
21 | function 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 | }
|
34 | function 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 | }
|