diff --git a/lib/6to5/register-browser.js b/lib/6to5/register-browser.js new file mode 100644 index 0000000000..4acd3d5895 --- /dev/null +++ b/lib/6to5/register-browser.js @@ -0,0 +1,3 @@ +// Required to safely use 6to5/register within a browserify codebase. +module.exports = function(){}; +require("./polyfill"); diff --git a/package.json b/package.json index d2fd5813c6..f0ab984c66 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,9 @@ "6to5-node": "./bin/6to5-node", "6to5-runtime": "./bin/6to5-runtime" }, + "browser": { + "./lib/6to5/register.js": "./lib/6to5/register-browser.js" + }, "keywords": [ "harmony", "classes", diff --git a/test/browserify.js b/test/browserify.js new file mode 100644 index 0000000000..40298147cd --- /dev/null +++ b/test/browserify.js @@ -0,0 +1,19 @@ +var browserify = require("browserify"); +var assert = require("assert"); +var path = require("path"); +var vm = require("vm"); + +suite("browserify", function() { + test("6to5/register may be used without breaking browserify", function(done) { + var bundler = browserify(path.join(__dirname, "fixtures/browserify/register.js")); + + bundler.bundle(function(err, bundle) { + if (err) return done(err); + assert.ok(bundle.length, "bundle output code"); + + // ensure that the code runs without throwing an exception + vm.runInNewContext(bundle, {}); + done(); + }) + }) +}); diff --git a/test/fixtures/browserify/register.js b/test/fixtures/browserify/register.js new file mode 100644 index 0000000000..2565c2183c --- /dev/null +++ b/test/fixtures/browserify/register.js @@ -0,0 +1,3 @@ +require('../../../register')({ + ignoreRegex: false +});