Merge a21be26f4e into 9916d0e547
This commit is contained in:
commit
b248b45696
|
|
@ -21,5 +21,6 @@
|
|||
"bin": {
|
||||
"uglifyjs" : "bin/uglifyjs"
|
||||
},
|
||||
"main": "./tools/node",
|
||||
"scripts": {"test": "node test/run-tests.js"}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,39 +1,41 @@
|
|||
#! /usr/bin/env node
|
||||
|
||||
var U = require("../tools/node");
|
||||
var path = require("path");
|
||||
var fs = require("fs");
|
||||
var assert = require("assert");
|
||||
var sys = require("util");
|
||||
// Test the two requires
|
||||
["../tools/node", "../"].forEach(function(requireFile) {
|
||||
var U = require(requireFile);
|
||||
var path = require("path");
|
||||
var fs = require("fs");
|
||||
var assert = require("assert");
|
||||
var sys = require("util");
|
||||
|
||||
var tests_dir = path.dirname(module.filename);
|
||||
var tests_dir = path.dirname(module.filename);
|
||||
|
||||
run_compress_tests();
|
||||
run_compress_tests();
|
||||
|
||||
/* -----[ utils ]----- */
|
||||
/* -----[ utils ]----- */
|
||||
|
||||
function tmpl() {
|
||||
function tmpl() {
|
||||
return U.string_template.apply(this, arguments);
|
||||
}
|
||||
}
|
||||
|
||||
function log() {
|
||||
function log() {
|
||||
var txt = tmpl.apply(this, arguments);
|
||||
sys.puts(txt);
|
||||
}
|
||||
}
|
||||
|
||||
function log_directory(dir) {
|
||||
function log_directory(dir) {
|
||||
log("*** Entering [{dir}]", { dir: dir });
|
||||
}
|
||||
}
|
||||
|
||||
function log_start_file(file) {
|
||||
function log_start_file(file) {
|
||||
log("--- {file}", { file: file });
|
||||
}
|
||||
}
|
||||
|
||||
function log_test(name) {
|
||||
function log_test(name) {
|
||||
log(" Running test [{name}]", { name: name });
|
||||
}
|
||||
}
|
||||
|
||||
function find_test_files(dir) {
|
||||
function find_test_files(dir) {
|
||||
var files = fs.readdirSync(dir).filter(function(name){
|
||||
return /\.js$/i.test(name);
|
||||
});
|
||||
|
|
@ -44,22 +46,22 @@ function find_test_files(dir) {
|
|||
});
|
||||
}
|
||||
return files;
|
||||
}
|
||||
}
|
||||
|
||||
function test_directory(dir) {
|
||||
function test_directory(dir) {
|
||||
return path.resolve(tests_dir, dir);
|
||||
}
|
||||
}
|
||||
|
||||
function as_toplevel(input) {
|
||||
function as_toplevel(input) {
|
||||
if (input instanceof U.AST_BlockStatement) input = input.body;
|
||||
else if (input instanceof U.AST_Statement) input = [ input ];
|
||||
else throw new Error("Unsupported input syntax");
|
||||
var toplevel = new U.AST_Toplevel({ body: input });
|
||||
toplevel.figure_out_scope();
|
||||
return toplevel;
|
||||
}
|
||||
}
|
||||
|
||||
function run_compress_tests() {
|
||||
function run_compress_tests() {
|
||||
var dir = test_directory("compress");
|
||||
log_directory("compress");
|
||||
var files = find_test_files(dir);
|
||||
|
|
@ -93,9 +95,9 @@ function run_compress_tests() {
|
|||
files.forEach(function(file){
|
||||
test_file(file);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function parse_test(file) {
|
||||
function parse_test(file) {
|
||||
var script = fs.readFileSync(file, "utf8");
|
||||
var ast = U.parse(script, {
|
||||
filename: file
|
||||
|
|
@ -154,17 +156,18 @@ function parse_test(file) {
|
|||
block.walk(tw);
|
||||
return test;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
function make_code(ast, beautify) {
|
||||
function make_code(ast, beautify) {
|
||||
if (arguments.length == 1) beautify = true;
|
||||
var stream = U.OutputStream({ beautify: beautify });
|
||||
ast.print(stream);
|
||||
return stream.get();
|
||||
}
|
||||
}
|
||||
|
||||
function evaluate(code) {
|
||||
function evaluate(code) {
|
||||
if (code instanceof U.AST_Node)
|
||||
code = make_code(code);
|
||||
return new Function("return(" + code + ")")();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user