From c0d166b86197c132daa9fda314407a1e92462cd7 Mon Sep 17 00:00:00 2001 From: Theodore Ni Date: Sat, 25 Jun 2016 22:12:44 -0700 Subject: [PATCH] Require base64-arraybuffer module conditionally. Since base64-arraybuffer version 0.1.5 introduced a change that fails at require time in a browser without ArrayBuffer support, the require must be guarded. --- lib/browser.js | 8 ++++++-- package.json | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/browser.js b/lib/browser.js index 79b9fefb03..2d12750100 100644 --- a/lib/browser.js +++ b/lib/browser.js @@ -5,10 +5,14 @@ var keys = require('./keys'); var hasBinary = require('has-binary'); var sliceBuffer = require('arraybuffer.slice'); -var base64encoder = require('base64-arraybuffer'); var after = require('after'); var utf8 = require('utf8'); +var base64encoder; +if (global.ArrayBuffer) { + base64encoder = require('base64-arraybuffer'); +} + /** * Check if we are running an android browser. That requires us to use * ArrayBuffer with polling transports... @@ -262,7 +266,7 @@ exports.decodePacket = function (data, binaryType, utf8decode) { exports.decodeBase64Packet = function(msg, binaryType) { var type = packetslist[msg.charAt(0)]; - if (!global.ArrayBuffer) { + if (!base64encoder) { return { type: type, data: { base64: true, data: msg.substr(1) } }; } diff --git a/package.json b/package.json index 0b3bbc4fc6..4921869006 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "dependencies": { "after": "0.8.1", "arraybuffer.slice": "0.0.6", - "base64-arraybuffer": "0.1.2", + "base64-arraybuffer": "0.1.5", "blob": "0.0.4", "has-binary": "0.1.6", "utf8": "2.1.0"