Skip to content

Commit 8a428b0

Browse files
Hristo HristovHristo Hristov
authored andcommitted
Small perf improvement in fromObject
1 parent 1e690a7 commit 8a428b0

File tree

1 file changed

+12
-15
lines changed

1 file changed

+12
-15
lines changed

tns-core-modules/data/observable/observable.ts

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -215,22 +215,19 @@ function defineNewProperty(target: ObservableFromObject, propertyName: string):
215215
}
216216

217217
function addPropertiesFromObject(observable: ObservableFromObject, source: any, recursive: boolean = false) {
218-
let isRecursive = recursive;
219-
for (let prop in source) {
220-
if (source.hasOwnProperty(prop)) {
221-
let value = source[prop];
222-
if (isRecursive
223-
&& !Array.isArray(value)
224-
&& value
225-
&& typeof value === 'object'
226-
&& !(value instanceof Observable)) {
227-
value = fromObjectRecursive(value);
228-
}
229-
230-
defineNewProperty(observable, prop);
231-
observable.set(prop, value);
218+
Object.keys(source).forEach(prop => {
219+
let value = source[prop];
220+
if (recursive
221+
&& !Array.isArray(value)
222+
&& value
223+
&& typeof value === 'object'
224+
&& !(value instanceof Observable)) {
225+
value = fromObjectRecursive(value);
232226
}
233-
}
227+
228+
defineNewProperty(observable, prop);
229+
observable.set(prop, value);
230+
});
234231
}
235232

236233
export function fromObject(source: any): Observable {

0 commit comments

Comments
 (0)