react / react-0.13.3 / examples / basic-commonjs / node_modules / browserify / node_modules / umd / node_modules / uglify-js / node_modules / uglify-to-browserify / index.js
80756 views'use strict'12var fs = require('fs')3var PassThrough = require('stream').PassThrough4var Transform = require('stream').Transform56if (typeof Transform === 'undefined') {7throw new Error('UglifyJS only supports browserify when using node >= 0.10.x')8}910var cache = {}11module.exports = transform12function transform(file) {13if (!/tools\/node\.js$/.test(file.replace(/\\/g,'/'))) return new PassThrough();14if (cache[file]) return makeStream(cache[file])15var uglify = require(file)16var src = 'var sys = require("util");\nvar MOZ_SourceMap = require("source-map");\nvar UglifyJS = exports;\n' + uglify.FILES.map(function (path) { return fs.readFileSync(path, 'utf8') }).join('\n')1718var ast = uglify.parse(src)19ast.figure_out_scope()2021var variables = ast.variables22.map(function (node, name) {23return name24})2526src += '\n\n' + variables.map(function (v) { return 'exports.' + v + ' = ' + v + ';' }).join('\n') + '\n\n'2728src += 'exports.AST_Node.warn_function = function (txt) { if (typeof console != "undefined" && typeof console.warn === "function") console.warn(txt) }\n\n'2930src += 'exports.minify = ' + uglify.minify.toString() + ';\n\n'31src += 'exports.describe_ast = ' + uglify.describe_ast.toString() + ';'3233// TODO: remove once https://github.com/substack/node-browserify/issues/631 is resolved34src = src.replace(/"for"/g, '"fo" + "r"')3536cache[file] = src37return makeStream(src);38}3940function makeStream(src) {41var res = new Transform();42res._transform = function (chunk, encoding, callback) { callback() }43res._flush = function (callback) {44res.push(src)45callback()46}47return res;48}495051