summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSumedha Widyadharma <sumedha.widyadharma@basyskom.com>2014-07-17 10:57:01 +0200
committerMilian Wolff <milian.wolff@kdab.com>2014-07-27 15:02:10 +0200
commita4f071e4fc0d7031a5941f6c16608536ee3dd9f4 (patch)
tree520bf49ed631883b6e55779c2128847db6193794 /src
parent5c27fa0c0d9640275e4496f831dca6b094e86dbd (diff)
downloadqtwebchannel-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')
-rw-r--r--src/webchannel/qwebchannel.js42
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;
});
+
}
// ----------------------------------------------------------------------