[Pkg-javascript-commits] [uglifyjs] 126/491: implement `test/jetstream.js --debug` (#2058)

Jonas Smedegaard dr at jones.dk
Wed Feb 14 19:51:28 UTC 2018


This is an automated email from the git hooks/post-receive script.

js pushed a commit to annotated tag debian/3.3.10-1
in repository uglifyjs.

commit b0eab71470fa887752bcf5442fbb26da3f724ef1
Author: Alex Lam S.L <alexlamsl at gmail.com>
Date:   Tue Jun 6 19:28:12 2017 +0800

    implement `test/jetstream.js --debug` (#2058)
---
 test/jetstream.js     | 85 +++++++++++++++++++++++++++++----------------------
 test/mocha/release.js |  3 --
 2 files changed, 49 insertions(+), 39 deletions(-)

diff --git a/test/jetstream.js b/test/jetstream.js
index cb8f111..8279975 100644
--- a/test/jetstream.js
+++ b/test/jetstream.js
@@ -3,7 +3,7 @@
 
 "use strict";
 
-var site = "http://browserbench.org/JetStream/";
+var site = "http://browserbench.org/JetStream";
 if (typeof phantom == "undefined") {
     // workaround for tty output truncation upon process.exit()
     [process.stdout, process.stderr].forEach(function(stream){
@@ -11,45 +11,62 @@ if (typeof phantom == "undefined") {
             stream._handle.setBlocking(true);
     });
     var args = process.argv.slice(2);
+    var debug = args.indexOf("--debug");
+    if (debug >= 0) {
+        args.splice(debug, 1);
+        debug = true;
+    } else {
+        debug = false;
+    }
     if (!args.length) {
         args.push("-mcb", "beautify=false,webkit");
     }
     args.push("--timings");
     var child_process = require("child_process");
-    try {
-        require("phantomjs-prebuilt");
-    } catch(e) {
-        child_process.execSync("npm install phantomjs-prebuilt at 2.1.14 --no-save");
-    }
     var http = require("http");
     var server = http.createServer(function(request, response) {
         request.resume();
-        var url = decodeURIComponent(request.url.slice(1));
-        var stderr = "";
-        var uglifyjs = child_process.fork("bin/uglifyjs", args, {
-            silent: true
-        }).on("exit", function(code) {
-            console.log("uglifyjs", url.indexOf(site) == 0 ? url.slice(site.length) : url, args.join(" "));
-            console.log(stderr);
-            if (code) throw new Error("uglifyjs failed with code " + code);
-        });
-        uglifyjs.stderr.on("data", function(data) {
-            stderr += data;
-        }).setEncoding("utf8");
-        uglifyjs.stdout.pipe(response);
+        var url = site + request.url;
         http.get(url, function(res) {
-            res.pipe(uglifyjs.stdin);
-        });
-    }).listen().on("listening", function() {
-        var phantomjs = require("phantomjs-prebuilt");
-        var program = phantomjs.exec(process.argv[1], server.address().port);
-        program.stdout.pipe(process.stdout);
-        program.stderr.pipe(process.stderr);
-        program.on("exit", function(code) {
-            server.close();
-            if (code) throw new Error("JetStream failed!");
-            console.log("JetStream completed successfully.");
+            response.writeHead(res.statusCode, {
+                "Content-Type": res.headers["content-type"]
+            });
+            if (/\.js$/.test(url)) {
+                var stderr = "";
+                var uglifyjs = child_process.fork("bin/uglifyjs", args, {
+                    silent: true
+                }).on("exit", function(code) {
+                    console.log("uglifyjs", url.slice(site.length + 1), args.join(" "));
+                    console.log(stderr);
+                    if (code) throw new Error("uglifyjs failed with code " + code);
+                });
+                uglifyjs.stderr.on("data", function(data) {
+                    stderr += data;
+                }).setEncoding("utf8");
+                uglifyjs.stdout.pipe(response);
+                res.pipe(uglifyjs.stdin);
+            } else {
+                res.pipe(response);
+            }
         });
+    }).listen();
+    server.on("listening", function() {
+        var port = server.address().port;
+        if (debug) {
+            console.log("http://localhost:" + port + "/");
+        } else {
+            child_process.exec("npm install phantomjs-prebuilt at 2.1.14 --no-save", function(error) {
+                if (error) throw error;
+                var program = require("phantomjs-prebuilt").exec(process.argv[1], port);
+                program.stdout.pipe(process.stdout);
+                program.stderr.pipe(process.stderr);
+                program.on("exit", function(code) {
+                    server.close();
+                    if (code) throw new Error("JetStream failed!");
+                    console.log("JetStream completed successfully.");
+                });
+            });
+        }
     });
     server.timeout = 0;
 } else {
@@ -63,10 +80,6 @@ if (typeof phantom == "undefined") {
         phantom.exit(1);
     };
     var url = "http://localhost:" + require("system").args[1] + "/";
-    page.onResourceRequested = function(requestData, networkRequest) {
-        if (/\.js$/.test(requestData.url))
-            networkRequest.changeUrl(url + encodeURIComponent(requestData.url));
-    }
     page.onConsoleMessage = function(msg) {
         if (/Error:/i.test(msg)) {
             console.error(msg);
@@ -77,8 +90,8 @@ if (typeof phantom == "undefined") {
             phantom.exit();
         }
     };
-    page.open(site, function(status) {
-        if (status != "success") phantomjs.exit(1);
+    page.open(url, function(status) {
+        if (status != "success") phantom.exit(1);
         page.evaluate(function() {
             JetStream.switchToQuick();
             JetStream.start();
diff --git a/test/mocha/release.js b/test/mocha/release.js
index c96a792..9f894b3 100644
--- a/test/mocha/release.js
+++ b/test/mocha/release.js
@@ -38,9 +38,6 @@ describe("test/benchmark.js", function() {
 
 describe("test/jetstream.js", function() {
     this.timeout(20 * 60 * 1000);
-    it("Should install phantomjs-prebuilt", function(done) {
-        run("npm", ["install", "phantomjs-prebuilt at 2.1.14"], done);
-    });
     [
         "-mc",
         "-mc keep_fargs=false,passes=3,pure_getters,unsafe,unsafe_comps,unsafe_math,unsafe_proto",

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/uglifyjs.git



More information about the Pkg-javascript-commits mailing list