From f5113a55e29466476f8ad100ba5fc84935ae4609 Mon Sep 17 00:00:00 2001 From: cTn Date: Fri, 31 Jan 2014 15:51:47 +0100 Subject: [PATCH] implementation for current canary 34 --- js/serial.js | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/js/serial.js b/js/serial.js index f2d790f4..fa3414da 100644 --- a/js/serial.js +++ b/js/serial.js @@ -31,8 +31,8 @@ var serial = { self.empty_output_buffer(); // remove listeners - for (var i = (self.onReceive.listeners_.length - 1); i >= 0; i--) { - self.onReceive.removeListener(self.onReceive.listeners_[i].callback); + for (var i = (self.onReceive.listeners.length - 1); i >= 0; i--) { + self.onReceive.removeListener(self.onReceive.listeners[i]); } chrome.serial.disconnect(this.connectionId, function(result) { @@ -96,7 +96,25 @@ var serial = { sending(); } }, - onReceive: chrome.serial.onReceive, + onReceive: { + listeners: [], + + addListener: function(function_reference) { + var listener = chrome.serial.onReceive.addListener(function_reference); + + this.listeners.push(function_reference); + }, + removeListener: function(function_reference) { + for (var i = (this.listeners.length - 1); i >= 0; i--) { + if (this.listeners[i] == function_reference) { + chrome.serial.onReceive.removeListener(function_reference); + + this.listeners.splice(i, 1); + break; + } + } + } + }, empty_output_buffer: function() { this.output_buffer = []; this.transmitting = false;