diff options
author | Sumedha Widyadharma <sumedha.widyadharma@basyskom.com> | 2014-07-17 10:57:01 +0200 |
---|---|---|
committer | Milian Wolff <milian.wolff@kdab.com> | 2014-07-27 15:02:10 +0200 |
commit | a4f071e4fc0d7031a5941f6c16608536ee3dd9f4 (patch) | |
tree | 520bf49ed631883b6e55779c2128847db6193794 /src/webchannel/qwebchannel.js | |
parent | 5c27fa0c0d9640275e4496f831dca6b094e86dbd (diff) | |
download | qtwebchannel-a4f071e4fc0d7031a5941f6c16608536ee3dd9f4.tar.gz |
Use defineProperty instead of __define[SG]etter__
__define[SG]etter__ are non-standard.
Object.defineProperty is the standard way to do this.
See also: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/__defineGetter__
Change-Id: If58e420fe84ef2fbb005838955fabf9d96f225b0
Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
Diffstat (limited to 'src/webchannel/qwebchannel.js')
-rw-r--r-- | src/webchannel/qwebchannel.js | 42 |
1 files changed, 22 insertions, 20 deletions
diff --git a/src/webchannel/qwebchannel.js b/src/webchannel/qwebchannel.js index 291c10b..8bfe106 100644 --- a/src/webchannel/qwebchannel.js +++ b/src/webchannel/qwebchannel.js @@ -376,29 +376,31 @@ function QObject(name, data, webChannel) addSignal(notifySignalData, true); } - object.__defineSetter__(propertyName, function(value) { - if (value === undefined) { - console.warn("Property setter for " + propertyName + " called with undefined value!"); - return; - } - object.__propertyCache__[propertyIndex] = value; - webChannel.exec({ - "type": QWebChannelMessageTypes.setProperty, - "object": object.__id__, - "property": propertyIndex, - "value": value - }); + Object.defineProperty(object, propertyName, { + get: function () { + var propertyValue = object.__propertyCache__[propertyIndex]; + if (propertyValue === undefined) { + // This shouldn't happen + console.warn("Undefined value in property cache for property \"" + propertyName + "\" in object " + object.__id__); + } - }); - object.__defineGetter__(propertyName, function () { - var propertyValue = object.__propertyCache__[propertyIndex]; - if (propertyValue === undefined) { - // This shouldn't happen - console.warn("Undefined value in property cache for property \"" + propertyName + "\" in object " + object.__id__); + return propertyValue; + }, + set: function(value) { + if (value === undefined) { + console.warn("Property setter for " + propertyName + " called with undefined value!"); + return; + } + object.__propertyCache__[propertyIndex] = value; + webChannel.exec({ + "type": QWebChannelMessageTypes.setProperty, + "object": object.__id__, + "property": propertyIndex, + "value": value + }); } - - return propertyValue; }); + } // ---------------------------------------------------------------------- |