From 7708e7f0a7b51da5bce85691653b4f32bbe855b4 Mon Sep 17 00:00:00 2001 From: Stefan Penner Date: Tue, 15 Nov 2016 09:27:04 -0800 Subject: [PATCH] [PERF] fix sub-optimal compiler output (#4655) * [PERF] fix sub-optimal compiler output given: ```js let [a, b] = thing; ``` If it is not statically known to babel, it will assume an iterator may be present. At which the following code is omitted. ```js var _slicedToArray = (function () { function sliceIterator(arr, i) { var _arr = [];var _n = true;var _d = false;var _e = undefined;try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value);if (i && _arr.length === i) break; } } catch (err) { _d = true;_e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } }return _arr; }return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; })(); ``` * Update internal-model.js --- addon/-private/system/model/internal-model.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/addon/-private/system/model/internal-model.js b/addon/-private/system/model/internal-model.js index 6cfab4699b6..5cd1693260f 100644 --- a/addon/-private/system/model/internal-model.js +++ b/addon/-private/system/model/internal-model.js @@ -349,7 +349,9 @@ InternalModel.prototype = { for (let i = 0, length = changedAttributeNames.length; i < length; i++) { let attribute = changedAttributeNames[i]; - let [oldData, newData] = changedAttributes[attribute]; + let data = changedAttributes[attribute]; + let oldData = data[0]; + let newData = data[1]; if (oldData === newData) { delete this._attributes[attribute];