From b47efb270d959e7456d8d44b4f3c386a884542b8 Mon Sep 17 00:00:00 2001 From: Damien Arrachequesne Date: Wed, 7 Nov 2018 23:14:07 +0100 Subject: [PATCH] [fix] Remove any reference to the `global` variable Related: https://github.com/socketio/socket.io-client/issues/1166 --- binary.js | 4 ++-- is-buffer.js | 18 +++++++----------- test/blob.js | 8 ++++---- test/index.js | 7 +++++-- test/support/env.js | 2 +- 5 files changed, 19 insertions(+), 20 deletions(-) diff --git a/binary.js b/binary.js index 1a530c7..3e2347d 100644 --- a/binary.js +++ b/binary.js @@ -7,8 +7,8 @@ var isArray = require('isarray'); var isBuf = require('./is-buffer'); var toString = Object.prototype.toString; -var withNativeBlob = typeof global.Blob === 'function' || toString.call(global.Blob) === '[object BlobConstructor]'; -var withNativeFile = typeof global.File === 'function' || toString.call(global.File) === '[object FileConstructor]'; +var withNativeBlob = typeof Blob === 'function' || (typeof Blob !== 'undefined' && toString.call(Blob) === '[object BlobConstructor]'); +var withNativeFile = typeof File === 'function' || (typeof File !== 'undefined' && toString.call(File) === '[object FileConstructor]'); /** * Replaces every Buffer | ArrayBuffer in packet with a numbered placeholder. diff --git a/is-buffer.js b/is-buffer.js index 9f451a4..c833865 100644 --- a/is-buffer.js +++ b/is-buffer.js @@ -1,16 +1,12 @@ module.exports = isBuf; -var withNativeBuffer = typeof global.Buffer === 'function' && typeof global.Buffer.isBuffer === 'function'; -var withNativeArrayBuffer = typeof global.ArrayBuffer === 'function'; +var withNativeBuffer = typeof Buffer === 'function' && typeof Buffer.isBuffer === 'function'; +var withNativeArrayBuffer = typeof ArrayBuffer === 'function'; -var isView = (function () { - if (withNativeArrayBuffer && typeof global.ArrayBuffer.isView === 'function') { - return global.ArrayBuffer.isView; - } else { - return function (obj) { return obj.buffer instanceof global.ArrayBuffer; }; - } -})(); +var isView = function (obj) { + return typeof ArrayBuffer.isView === 'function' ? ArrayBuffer.isView(obj) : (obj.buffer instanceof ArrayBuffer); +}; /** * Returns true if obj is a buffer or an arraybuffer. @@ -19,6 +15,6 @@ var isView = (function () { */ function isBuf(obj) { - return (withNativeBuffer && global.Buffer.isBuffer(obj)) || - (withNativeArrayBuffer && (obj instanceof global.ArrayBuffer || isView(obj))); + return (withNativeBuffer && Buffer.isBuffer(obj)) || + (withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))); } diff --git a/test/blob.js b/test/blob.js index 31d4b24..4e101fe 100644 --- a/test/blob.js +++ b/test/blob.js @@ -1,10 +1,10 @@ var parser = require('../index.js'); -var expect = require('expect.js'); var helpers = require('./helpers.js'); -var encode = parser.encode; -var decode = parser.decode; -var BlobBuilder = global.BlobBuilder || global.WebKitBlobBuilder || global.MSBlobBuilder || global.MozBlobBuilder; +var BlobBuilder = typeof BlobBuilder !== 'undefined' ? BlobBuilder : + typeof WebKitBlobBuilder !== 'undefined' ? WebKitBlobBuilder : + typeof MSBlobBuilder !== 'undefined' ? MSBlobBuilder : + typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder : false; describe('parser', function() { it('encodes a Blob', function() { diff --git a/test/index.js b/test/index.js index ba6ce75..9d4a1cb 100644 --- a/test/index.js +++ b/test/index.js @@ -12,7 +12,10 @@ var blobSupported = (function() { * Create a blob builder even when vendor prefixes exist */ -var BlobBuilder = global.BlobBuilder || global.WebKitBlobBuilder || global.MSBlobBuilder || global.MozBlobBuilder; +var BlobBuilder = typeof BlobBuilder !== 'undefined' ? BlobBuilder : + typeof WebKitBlobBuilder !== 'undefined' ? WebKitBlobBuilder : + typeof MSBlobBuilder !== 'undefined' ? MSBlobBuilder : + typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder : false; var blobBuilderSupported = !!BlobBuilder && !!BlobBuilder.prototype.append && !!BlobBuilder.prototype.getBlob; require('./parser.js'); @@ -21,7 +24,7 @@ if (!env.browser) { require('./buffer.js'); } -if (global.ArrayBuffer) { +if (typeof ArrayBuffer !== 'undefined') { require('./arraybuffer.js'); } diff --git a/test/support/env.js b/test/support/env.js index c1d494e..0b4873d 100644 --- a/test/support/env.js +++ b/test/support/env.js @@ -2,4 +2,4 @@ // we only do this in our tests because we need to test engine.io-client // support in browsers and in node.js // some tests do not yet work in both -module.exports.browser = !!global.window; +module.exports.browser = typeof window !== 'undefined';