From 8a428b011af63935fb9c1b0a2229e52ae7d2c291 Mon Sep 17 00:00:00 2001 From: Hristo Hristov Date: Thu, 11 Jan 2018 13:49:52 +0200 Subject: [PATCH] Small perf improvement in fromObject --- .../data/observable/observable.ts | 27 +++++++++---------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/tns-core-modules/data/observable/observable.ts b/tns-core-modules/data/observable/observable.ts index b18cec7af..29f0f4a16 100644 --- a/tns-core-modules/data/observable/observable.ts +++ b/tns-core-modules/data/observable/observable.ts @@ -215,22 +215,19 @@ function defineNewProperty(target: ObservableFromObject, propertyName: string): } function addPropertiesFromObject(observable: ObservableFromObject, source: any, recursive: boolean = false) { - let isRecursive = recursive; - for (let prop in source) { - if (source.hasOwnProperty(prop)) { - let value = source[prop]; - if (isRecursive - && !Array.isArray(value) - && value - && typeof value === 'object' - && !(value instanceof Observable)) { - value = fromObjectRecursive(value); - } - - defineNewProperty(observable, prop); - observable.set(prop, value); + Object.keys(source).forEach(prop => { + let value = source[prop]; + if (recursive + && !Array.isArray(value) + && value + && typeof value === 'object' + && !(value instanceof Observable)) { + value = fromObjectRecursive(value); } - } + + defineNewProperty(observable, prop); + observable.set(prop, value); + }); } export function fromObject(source: any): Observable {