From bb52aa78d47349922042482ac55a89746ecf4b51 Mon Sep 17 00:00:00 2001 From: Lukasz Bardeli Date: Wed, 5 Dec 2018 10:18:08 +0100 Subject: [PATCH] [MessagePort] Fixed issue with removeMessagePortListener without any added earlier If any listener was added before remove then error was thrown 'Cannot read property length of undefined' [Verification] Code compiles without error. TCT passrate 100% Change-Id: I96000345ae483a9fa2c0b50a6be0ece427ce8e1b Signed-off-by: Lukasz Bardeli --- src/messageport/messageport_api.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/messageport/messageport_api.js b/src/messageport/messageport_api.js index ab612f13..4883d79d 100755 --- a/src/messageport/messageport_api.js +++ b/src/messageport/messageport_api.js @@ -251,22 +251,22 @@ LocalMessagePort.prototype.removeMessagePortListener = function(watchId) { {'name' : 'watchId', 'type': types_.LONG, 'nullable': false, 'optional': false } ]); - var to_delete; + var toDelete; var listeners = callbacks[ports[this.messagePortName]]; - for (var i = 0, j = listeners.length; i < j; i++) { - var listener_id = listeners[i][1]; - if (watchId == listener_id) { - to_delete = i; + for (var key in listeners) { + var listenerId = listeners[key][1]; + if (watchId == listenerId) { + toDelete = key; break; } } - if (typeof to_delete === 'undefined') + if (typeof toDelete === 'undefined') throw new WebAPIException(WebAPIException.NOT_FOUND_ERR, 'The port of the target application is not found.'); - listeners.splice(to_delete, 1); + listeners.splice(toDelete, 1); }; -- 2.34.1