-
Notifications
You must be signed in to change notification settings - Fork 15
Expand file tree
/
Copy pathmodularity.js
More file actions
73 lines (62 loc) · 1.73 KB
/
modularity.js
File metadata and controls
73 lines (62 loc) · 1.73 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
'use strict';
const benchmark = require('../2-benchmark.js');
const test0api = {
moduleName: {
submodule1: require('./lib0/submodule1'),
submodule2: require('./lib0/submodule2')
}
};
const test1api = {
moduleName: {
submodule1: require('./lib1/submodule1'),
submodule2: require('./lib1/submodule2')
}
};
const test2api = {
moduleName: {
submodule1: require('./lib2/submodule1'),
submodule2: require('./lib2/submodule2')
}
};
const test3api = {};
test3api.moduleName = {};
require('./lib3/submodule1')(test3api);
require('./lib3/submodule2')(test3api);
console.dir(test0api);
console.dir(test1api);
console.dir(test2api);
console.dir(test3api);
function exportObj() {
const a = test0api.moduleName.submodule1.first('Value');
const b = test0api.moduleName.submodule1.second(a);
const c = test0api.moduleName.submodule2.third(b);
const d = test0api.moduleName.submodule2.fourth(c);
return d;
}
function exportHash() {
const a = test1api.moduleName.submodule1.first('Value');
const b = test1api.moduleName.submodule1.second(a);
const c = test1api.moduleName.submodule2.third(b);
const d = test1api.moduleName.submodule2.fourth(c);
return d;
}
function exportLink() {
const a = test2api.moduleName.submodule1.first('Value');
const b = test2api.moduleName.submodule1.second(a);
const c = test2api.moduleName.submodule2.third(b);
const d = test2api.moduleName.submodule2.fourth(c);
return d;
}
function exportClosure() {
const a = test3api.moduleName.first('Value');
const b = test3api.moduleName.second(a);
const c = test3api.moduleName.third(b);
const d = test3api.moduleName.fourth(c);
return d;
}
benchmark.do(10000000, [
exportObj,
exportHash,
exportLink,
exportClosure
]);