Skip to content

Commit 84f186e

Browse files
committed
store value in prototype as last resort, and use it in property storage
1 parent dd900fd commit 84f186e

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

core/Object.qml

+3
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,9 @@ EventEmitter {
175175
if (storage !== undefined)
176176
return storage
177177

178+
if (value === undefined)
179+
value = this["__default_" + name]
180+
178181
return this.__properties[name] = new $core.core.PropertyStorage(value)
179182
}
180183

core/core.js

+6-1
Original file line numberDiff line numberDiff line change
@@ -561,8 +561,12 @@ PropertyStoragePrototype.callOnChangedWithCurrentValue = function(object, name,
561561
return
562562

563563
var value = this.value
564-
if (value === undefined) //default - nothing changed since storage was created.
564+
if (value === undefined)
565+
{
566+
var defaultValue = object["__default_" + name]
567+
callback(defaultValue)
565568
return
569+
}
566570

567571
var invoker = $core.safeCall(object, [value], function(ex) { log("on " + name + " changed callback failed: ", ex, ex.stack) })
568572
invoker(callback)
@@ -642,6 +646,7 @@ exports.addProperty = function(proto, type, name, defaultValue) {
642646
} else {
643647
defaultValue = getDefaultValueForType(type)
644648
}
649+
proto["__default_" + name] = defaultValue
645650

646651
var createStorage = function(newValue) {
647652
var properties = this.__properties

0 commit comments

Comments
 (0)