From b5b50b031eab48661bc8875bf54c9d9882690f3a Mon Sep 17 00:00:00 2001 From: bekzod Date: Mon, 8 Oct 2018 13:32:13 +0500 Subject: [PATCH] reuse meta in `property_set` --- packages/@ember/-internals/metal/lib/property_get.ts | 3 +-- packages/@ember/-internals/metal/lib/property_set.ts | 10 ++++------ 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/packages/@ember/-internals/metal/lib/property_get.ts b/packages/@ember/-internals/metal/lib/property_get.ts index be0e658c7c2..6883053e008 100644 --- a/packages/@ember/-internals/metal/lib/property_get.ts +++ b/packages/@ember/-internals/metal/lib/property_get.ts @@ -96,7 +96,6 @@ export function get(obj: object, keyName: string): any { let isFunction = type === 'function'; let isObjectLike = isObject || isFunction; - let descriptor; let value: any; if (isObjectLike) { @@ -105,7 +104,7 @@ export function get(obj: object, keyName: string): any { if (tracker) tracker.add(tagForProperty(obj, keyName)); } - descriptor = descriptorFor(obj, keyName); + let descriptor = descriptorFor(obj, keyName); if (descriptor !== undefined) { return descriptor.get(obj, keyName); } diff --git a/packages/@ember/-internals/metal/lib/property_set.ts b/packages/@ember/-internals/metal/lib/property_set.ts index 29ca235813a..238624f9ad5 100644 --- a/packages/@ember/-internals/metal/lib/property_set.ts +++ b/packages/@ember/-internals/metal/lib/property_set.ts @@ -76,11 +76,11 @@ export function set(obj: object, keyName: string, value: any, tolerant?: boolean return setPath(obj, keyName, value, tolerant); } - let possibleDesc = descriptorFor(obj, keyName); + let meta = peekMeta(obj); + let descriptor = descriptorFor(obj, keyName, meta); - if (possibleDesc !== undefined) { - /* computed property */ - possibleDesc.set(obj, keyName, value); + if (descriptor !== undefined) { + descriptor.set(obj, keyName, value); return value; } @@ -100,8 +100,6 @@ export function set(obj: object, keyName: string, value: any, tolerant?: boolean /* unknown property */ (obj as ExtendedObject).setUnknownProperty!(keyName, value); } else { - let meta = peekMeta(obj); - if (DEBUG) { setWithMandatorySetter(meta, obj, keyName, value); } else {