Skip to content

Commit f80996e

Browse files
authored
Fix defineProperties in instanceDefaults
Skip redefining getters, setters and functions
1 parent a4debb5 commit f80996e

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

src/service-module/model.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ export default function (options) {
4343
Object.keys(_instanceDefaults).forEach(key => {
4444
// Prevent getters and setters from firing before the instance is constructed
4545
const desc = Object.getOwnPropertyDescriptor(_instanceDefaults, key)
46-
if (desc.get || desc.set) {
46+
if (desc.get || desc.set || typeof desc.value === 'function') {
4747
return
4848
}
4949

@@ -109,7 +109,12 @@ export default function (options) {
109109
// Copy over all instance data
110110
const dataProps = Object.getOwnPropertyNames(data)
111111
dataProps.forEach(key => {
112-
var desc = Object.getOwnPropertyDescriptor(data, key)
112+
const desc = Object.getOwnPropertyDescriptor(data, key);
113+
const propertyExists = _this.hasOwnProperty(key);
114+
const isComputed = desc.get || desc.set || typeof desc.value === 'function';
115+
if (propertyExists && isComputed) {
116+
return;
117+
}
113118
Object.defineProperty(this, key, desc)
114119
})
115120

0 commit comments

Comments
 (0)