Skip to content

Commit 3dd0ea9

Browse files
committed
Fix tests, add bin/node functionality
Added a source transform in the previous commit which would add require calls for es6-{promise,map,set} to the top of each module. Have also updated es-{map,set} to use GitHub URLs, but only as a temporary measure. There's a REPL now too which will transpile code on the fly.
1 parent 7090544 commit 3dd0ea9

File tree

4 files changed

+69
-4
lines changed

4 files changed

+69
-4
lines changed

bin/node6

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,31 @@
11
#!/usr/bin/env node
22

3-
require('../')
3+
var Promise = require('es6-promise')
4+
var Map = require('es6-map')
5+
var Set = require('es6-set')
6+
var resolve = require('resolve')
7+
var path = require('path')
8+
var eval = require('../eval')
49

10+
// hide the original initial file from node
11+
process.argv.splice(1, 1)
512

13+
// run as a REPL if no file supplied
14+
var loadFile = process.argv[1]
15+
if (!loadFile) {
16+
return require('repl').start({ eval: eval })
17+
}
18+
19+
var firstChar = loadFile.charAt(0)
20+
if (firstChar !== '.' && firstChar !== '/') {
21+
loadFile = './' + loadFile
22+
}
23+
24+
loadFile = resolve.sync(loadFile, {
25+
basedir: process.cwd()
26+
})
27+
28+
// Prepare the node6 override and run
29+
// the target file
30+
require('../')(path.dirname(loadFile))
31+
require(loadFile)

eval.js

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
var Promise = require('es6-promise')
2+
var Map = require('es6-map')
3+
var Set = require('es6-set')
4+
var vm = require('vm')
5+
6+
var destructuring = require('./lib/destructuring')
7+
var polyfills = require('./lib/polyfills')
8+
var esnext = require('./lib/esnext')
9+
var defs = require('./lib/defs')
10+
11+
module.exports = eval
12+
13+
function eval(src, context, filename, callback) {
14+
context.Map = Map
15+
context.Set = Set
16+
context.Promise = Promise
17+
18+
var result = vm.runInNewContext(transpile(src)
19+
, context
20+
, filename
21+
)
22+
23+
callback(null, result)
24+
}
25+
26+
function transpile(src, filename) {
27+
src = '{' + src.slice(1, -1) + '}'
28+
src = destructuring(src, filename)
29+
src = defs(src, filename)
30+
src = esnext(src, filename)
31+
32+
return src
33+
}

package.json

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,25 @@
44
"description": "",
55
"main": "index.js",
66
"scripts": {
7-
"test": "echo \"Error: no test specified\" && exit 1"
7+
"test": "node test/test"
8+
},
9+
"bin": {
10+
"node6": "bin/node6"
811
},
912
"author": "",
1013
"license": "ISC",
1114
"dependencies": {
1215
"defaults": "^1.0.0",
1316
"defs": "^0.6.2",
1417
"es6-destructuring-jstransform": "^0.1.0",
15-
"es6-map": "0.0.0",
16-
"es6-set": "0.0.0",
18+
"es6-map": "git://github.com/medikoo/es6-map",
19+
"es6-set": "git://github.com/medikoo/es6-set",
20+
"es6-promise": "^0.1.1",
1721
"es6-shim": "^0.10.1",
1822
"esnext": "^0.7.7",
1923
"esprima-fb": "3001.1.0-dev-harmony-fb",
2024
"faucet": "0.0.1",
25+
"resolve": "^0.6.3",
2126
"module-map": "0.0.1",
2227
"tape": "^2.12.3",
2328
"traceur": "0.0.33"

test/test.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ test('collections', function(t) {
3535
var c = require('./collections')
3636
t.ok(c.set.has('hello'))
3737
t.equal(c.map.get(c.set), 34)
38+
t.end()
3839
//t.equal(c.weakMap.size, undefined)
3940
//t.equal(c.weakMap.size, 1)
4041
//t.ok(c.weakMap.has(c.set))

0 commit comments

Comments
 (0)