diff --git a/lib/namespace.js b/lib/namespace.js index 3c6b65ca4d..0b0657ba8c 100644 --- a/lib/namespace.js +++ b/lib/namespace.js @@ -210,23 +210,28 @@ Namespace.prototype.remove = function(socket){ Namespace.prototype.emit = function(ev){ if (~exports.events.indexOf(ev)) { emit.apply(this, arguments); - } else { - // set up packet object - var args = Array.prototype.slice.call(arguments); - var packet = { type: parser.EVENT, data: args }; + return this; + } + // set up packet object + var args = Array.prototype.slice.call(arguments); + var packet = { type: parser.EVENT, data: args }; - if ('function' == typeof args[args.length - 1]) { - throw new Error('Callbacks are not supported when broadcasting'); - } + if ('function' == typeof args[args.length - 1]) { + throw new Error('Callbacks are not supported when broadcasting'); + } - this.adapter.broadcast(packet, { - rooms: this.rooms, - flags: this.flags - }); + var rooms = this.rooms.slice(0); + var flags = Object.assign({}, this.flags); + + // reset flags + this.rooms = []; + this.flags = {}; + + this.adapter.broadcast(packet, { + rooms: rooms, + flags: flags + }); - this.rooms = []; - this.flags = {}; - } return this; }; diff --git a/lib/socket.js b/lib/socket.js index a907bf3381..726f34adb6 100644 --- a/lib/socket.js +++ b/lib/socket.js @@ -7,7 +7,6 @@ var Emitter = require('events').EventEmitter; var parser = require('socket.io-parser'); var url = require('url'); var debug = require('debug')('socket.io:socket'); -var assign = require('object-assign'); /** * Module exports. @@ -115,7 +114,7 @@ Socket.prototype.buildHandshake = function(query){ function buildQuery(){ var requestQuery = url.parse(self.request.url, true).query; //if socket-specific query exist, replace query strings in requestQuery - return assign({}, query, requestQuery); + return Object.assign({}, query, requestQuery); } return { headers: this.request.headers, @@ -160,7 +159,7 @@ Socket.prototype.emit = function(ev){ } var rooms = this._rooms.slice(0); - var flags = assign({}, this.flags); + var flags = Object.assign({}, this.flags); // reset flags this._rooms = []; diff --git a/package.json b/package.json index 50dc91fe9c..0973bbf019 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,6 @@ "dependencies": { "debug": "~2.6.6", "engine.io": "~3.1.0", - "object-assign": "~4.1.1", "socket.io-adapter": "~1.1.0", "socket.io-client": "~2.0.2", "socket.io-parser": "~3.1.1"