From be3caa413b830baa01dd3e4cf4e481e1145d79e4 Mon Sep 17 00:00:00 2001 From: Stefan Penner Date: Mon, 15 Jun 2015 00:52:49 -0400 Subject: [PATCH 1/2] [CLEANUP Beta] Remove EmberKeys (internally) continue to expose Ember.keys but as 1:1 with Object.keys [ES5-only] MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (╯°□°)╯︵ sʎǝʞ¬ --- packages/container/lib/container.js | 3 +-- packages/container/lib/registry.js | 3 +-- .../ember-application/lib/system/resolver.js | 3 +-- .../tests/system/logging_test.js | 13 ++++-------- .../ember-htmlbars/lib/helpers/each-in.js | 3 +-- .../ember-htmlbars/lib/keywords/collection.js | 3 +-- packages/ember-htmlbars/lib/keywords/view.js | 3 +-- .../lib/system/discover-known-helpers.js | 3 +-- .../system/discover-known-helpers-test.js | 7 +++---- packages/ember-metal/lib/main.js | 3 +-- packages/ember-metal/lib/merge.js | 6 ++---- packages/ember-metal/lib/set_properties.js | 5 ++--- packages/ember-metal/tests/keys_test.js | 21 +++++++++---------- .../lib/keywords/closure-action.js | 3 +-- .../ember-routing/lib/services/routing.js | 11 ++++------ packages/ember-routing/lib/system/route.js | 5 ++--- .../lib/computed/reduce_computed_macros.js | 5 ++--- packages/ember-runtime/lib/inject.js | 8 ++----- .../ember-runtime/lib/system/core_object.js | 3 +-- .../tests/computed/reduce_computed_test.js | 21 +++++++++++++++---- .../tests/system/object/create_test.js | 3 +-- .../tests/system/object/destroy_test.js | 3 +-- .../ember-views/lib/compat/attrs-proxy.js | 5 +---- 23 files changed, 61 insertions(+), 82 deletions(-) diff --git a/packages/container/lib/container.js b/packages/container/lib/container.js index 38fed096e55..3784bc053e8 100644 --- a/packages/container/lib/container.js +++ b/packages/container/lib/container.js @@ -1,5 +1,4 @@ import Ember from 'ember-metal/core'; // Ember.assert -import emberKeys from 'ember-metal/keys'; import dictionary from 'ember-metal/dictionary'; // TODO - Temporary workaround for v0.4.0 of the ES6 transpiler, which lacks support for circular dependencies. @@ -337,7 +336,7 @@ function instantiate(container, fullName) { function eachDestroyable(container, callback) { var cache = container.cache; - var keys = emberKeys(cache); + var keys = Object.keys(cache); var key, value; for (var i = 0, l = keys.length; i < l; i++) { diff --git a/packages/container/lib/registry.js b/packages/container/lib/registry.js index bea041b2a3f..5469a905bec 100644 --- a/packages/container/lib/registry.js +++ b/packages/container/lib/registry.js @@ -1,7 +1,6 @@ import Ember from 'ember-metal/core'; // Ember.assert import isEnabled from 'ember-metal/features'; import dictionary from 'ember-metal/dictionary'; -import keys from 'ember-metal/keys'; import { assign } from 'ember-metal/merge'; import Container from './container'; @@ -702,7 +701,7 @@ Registry.prototype = { let fallbackKnown, resolverKnown; let localKnown = dictionary(null); - let registeredNames = keys(this.registrations); + let registeredNames = Object.keys(this.registrations); for (let index = 0, length = registeredNames.length; index < length; index++) { let fullName = registeredNames[index]; let itemType = fullName.split(':')[0]; diff --git a/packages/ember-application/lib/system/resolver.js b/packages/ember-application/lib/system/resolver.js index ce0e22feedf..689d0afd1d8 100644 --- a/packages/ember-application/lib/system/resolver.js +++ b/packages/ember-application/lib/system/resolver.js @@ -6,7 +6,6 @@ import Ember from 'ember-metal/core'; // Ember.TEMPLATES, Ember.assert import { get } from 'ember-metal/property_get'; import Logger from 'ember-metal/logger'; -import keys from 'ember-metal/keys'; import { classify, capitalize, @@ -436,7 +435,7 @@ export default EmberObject.extend({ let typeRegexp = new RegExp(`${suffix}$`); let known = dictionary(null); - let knownKeys = keys(namespace); + let knownKeys = Object.keys(namespace); for (let index = 0, length = knownKeys.length; index < length; index++) { let name = knownKeys[index]; diff --git a/packages/ember-application/tests/system/logging_test.js b/packages/ember-application/tests/system/logging_test.js index fca12852126..4c974a5402a 100644 --- a/packages/ember-application/tests/system/logging_test.js +++ b/packages/ember-application/tests/system/logging_test.js @@ -1,5 +1,3 @@ -/*globals EmberDev */ - import Ember from 'ember-metal/core'; import run from 'ember-metal/run_loop'; import Application from 'ember-application/system/application'; @@ -7,11 +5,8 @@ import View from 'ember-views/views/view'; import Controller from 'ember-runtime/controllers/controller'; import Route from 'ember-routing/system/route'; import RSVP from 'ember-runtime/ext/rsvp'; -import keys from 'ember-metal/keys'; import compile from 'ember-template-compiler/system/compile'; -import 'ember-routing'; - var App, logs, originalLogger; QUnit.module('Ember.Application – logging of generated classes', { @@ -88,7 +83,7 @@ QUnit.test('log class generation if logging enabled', function() { run(App, 'advanceReadiness'); visit('/posts').then(function() { - equal(Ember.keys(logs).length, 6, 'expected logs'); + equal(Object.keys(logs).length, 6, 'expected logs'); }); }); @@ -100,7 +95,7 @@ QUnit.test('do NOT log class generation if logging disabled', function() { run(App, 'advanceReadiness'); visit('/posts').then(function() { - equal(keys(logs).length, 0, 'expected no logs'); + equal(Object.keys(logs).length, 0, 'expected no logs'); }); }); @@ -202,7 +197,7 @@ QUnit.test('do not log when template and view are missing when flag is not true' run(App, 'advanceReadiness'); visit('/posts').then(function() { - equal(keys(logs).length, 0, 'expected no logs'); + equal(Object.keys(logs).length, 0, 'expected no logs'); }); }); @@ -232,6 +227,6 @@ QUnit.test('do not log which views are used with templates when flag is not true run(App, 'advanceReadiness'); visit('/posts').then(function() { - equal(keys(logs).length, 0, 'expected no logs'); + equal(Object.keys(logs).length, 0, 'expected no logs'); }); }); diff --git a/packages/ember-htmlbars/lib/helpers/each-in.js b/packages/ember-htmlbars/lib/helpers/each-in.js index 51800bef1d2..2acf8f87379 100644 --- a/packages/ember-htmlbars/lib/helpers/each-in.js +++ b/packages/ember-htmlbars/lib/helpers/each-in.js @@ -1,11 +1,10 @@ import isEnabled from 'ember-metal/features'; -import keys from 'ember-metal/keys'; import shouldDisplay from 'ember-views/streams/should_display'; if (isEnabled('ember-htmlbars-each-in')) { var eachInHelper = function([ object ], hash, blocks) { var objKeys, prop, i; - objKeys = object ? keys(object) : []; + objKeys = object ? Object.keys(object) : []; if (shouldDisplay(objKeys)) { for (i = 0; i < objKeys.length; i++) { prop = objKeys[i]; diff --git a/packages/ember-htmlbars/lib/keywords/collection.js b/packages/ember-htmlbars/lib/keywords/collection.js index 9974eed3359..e186e4a6709 100644 --- a/packages/ember-htmlbars/lib/keywords/collection.js +++ b/packages/ember-htmlbars/lib/keywords/collection.js @@ -6,7 +6,6 @@ import { readViewFactory } from 'ember-views/streams/utils'; import CollectionView from 'ember-views/views/collection_view'; import ViewNodeManager from 'ember-htmlbars/node-managers/view-node-manager'; -import objectKeys from 'ember-metal/keys'; import { assign } from 'ember-metal/merge'; export default { @@ -23,7 +22,7 @@ export default { // If the hash is empty, the component cannot have extracted a part // of a mutable param and used it in its layout, because there are // no params at all. - if (objectKeys(hash).length) { + if (Object.keys(hash).length) { return morph.state.manager.rerender(env, hash, visitor, true); } }, diff --git a/packages/ember-htmlbars/lib/keywords/view.js b/packages/ember-htmlbars/lib/keywords/view.js index 18f14aad0ec..a4d549200f0 100644 --- a/packages/ember-htmlbars/lib/keywords/view.js +++ b/packages/ember-htmlbars/lib/keywords/view.js @@ -6,7 +6,6 @@ import { readViewFactory } from 'ember-views/streams/utils'; import EmberView from 'ember-views/views/view'; import ViewNodeManager from 'ember-htmlbars/node-managers/view-node-manager'; -import objectKeys from 'ember-metal/keys'; export default { setupState(state, env, scope, params, hash) { @@ -34,7 +33,7 @@ export default { // If the hash is empty, the component cannot have extracted a part // of a mutable param and used it in its layout, because there are // no params at all. - if (objectKeys(hash).length) { + if (Object.keys(hash).length) { return morph.state.manager.rerender(env, hash, visitor, true); } }, diff --git a/packages/ember-htmlbars/lib/system/discover-known-helpers.js b/packages/ember-htmlbars/lib/system/discover-known-helpers.js index 1afd6a7fcd0..9f647393020 100644 --- a/packages/ember-htmlbars/lib/system/discover-known-helpers.js +++ b/packages/ember-htmlbars/lib/system/discover-known-helpers.js @@ -1,6 +1,5 @@ import isEnabled from 'ember-metal/features'; import dictionary from 'ember-metal/dictionary'; -import keys from 'ember-metal/keys'; export default function discoverKnownHelpers(container) { let registry = container && container._registry; @@ -12,7 +11,7 @@ export default function discoverKnownHelpers(container) { } let known = registry.knownForType('helper'); - let knownContainerKeys = keys(known); + let knownContainerKeys = Object.keys(known); for (let index = 0, length = knownContainerKeys.length; index < length; index++) { let fullName = knownContainerKeys[index]; diff --git a/packages/ember-htmlbars/tests/system/discover-known-helpers-test.js b/packages/ember-htmlbars/tests/system/discover-known-helpers-test.js index 12d417763a4..b874037d0fa 100644 --- a/packages/ember-htmlbars/tests/system/discover-known-helpers-test.js +++ b/packages/ember-htmlbars/tests/system/discover-known-helpers-test.js @@ -1,6 +1,5 @@ import isEnabled from 'ember-metal/features'; import Registry from 'container/registry'; -import keys from 'ember-metal/keys'; import Helper from 'ember-htmlbars/helper'; import { runDestroy } from 'ember-runtime/tests/utils'; import discoverKnownHelpers from 'ember-htmlbars/system/discover-known-helpers'; @@ -31,7 +30,7 @@ if (isEnabled('ember-htmlbars-dashless-helpers')) { QUnit.test('includes helpers in the registry', function() { registry.register('helper:t', Helper); let result = discoverKnownHelpers(container); - let helpers = keys(result); + let helpers = Object.keys(result); deepEqual(helpers, ['t'], 'helpers from the registry were known'); }); @@ -45,7 +44,7 @@ if (isEnabled('ember-htmlbars-dashless-helpers')) { registry.register('helper:t', Helper); let result = discoverKnownHelpers(container); - let helpers = keys(result); + let helpers = Object.keys(result); deepEqual(helpers, ['t', 'f'], 'helpers from the registry were known'); }); @@ -54,7 +53,7 @@ if (isEnabled('ember-htmlbars-dashless-helpers')) { registry.register('helper:t', Helper); let result = discoverKnownHelpers(container); - let helpers = keys(result); + let helpers = Object.keys(result); deepEqual(helpers, [], 'helpers from the registry were known'); }); diff --git a/packages/ember-metal/lib/main.js b/packages/ember-metal/lib/main.js index 94f69954c7e..278c083cb5e 100644 --- a/packages/ember-metal/lib/main.js +++ b/packages/ember-metal/lib/main.js @@ -191,7 +191,6 @@ import isNone from 'ember-metal/is_none'; import isEmpty from 'ember-metal/is_empty'; import isBlank from 'ember-metal/is_blank'; import isPresent from 'ember-metal/is_present'; -import keys from 'ember-metal/keys'; import Backburner from 'backburner'; import { isStream, @@ -224,8 +223,8 @@ Ember._Cache = Cache; Ember.generateGuid = generateGuid; Ember.GUID_KEY = GUID_KEY; -Ember.keys = keys; Ember.create = Object.create; +Ember.keys = Object.keys; Ember.platform = { defineProperty: true, hasPropertyAccessors: true diff --git a/packages/ember-metal/lib/merge.js b/packages/ember-metal/lib/merge.js index eaf63297ab8..a911f3d2f9f 100644 --- a/packages/ember-metal/lib/merge.js +++ b/packages/ember-metal/lib/merge.js @@ -1,5 +1,3 @@ -import keys from 'ember-metal/keys'; - /** Merge the contents of two objects together into the first object. @@ -22,7 +20,7 @@ export default function merge(original, updates) { return original; } - var props = keys(updates); + var props = Object.keys(updates); var prop; var length = props.length; @@ -39,7 +37,7 @@ export function assign(original, ...args) { let arg = args[i]; if (!arg) { continue; } - let updates = keys(arg); + let updates = Object.keys(arg); for (let i=0, l=updates.length; i { + var props = Object.keys(properties); var propertyName; for (var i = 0, l = props.length; i < l; i++) { diff --git a/packages/ember-metal/tests/keys_test.js b/packages/ember-metal/tests/keys_test.js index aa3ae1ea8d7..7dbbedfcd66 100644 --- a/packages/ember-metal/tests/keys_test.js +++ b/packages/ember-metal/tests/keys_test.js @@ -1,5 +1,4 @@ import { set } from 'ember-metal/property_set'; -import keys from 'ember-metal/keys'; import { addObserver, removeObserver @@ -16,7 +15,7 @@ QUnit.test('should get a key array for a specified object', function() { object1.age = '23'; object1.place = 'Mangalore'; - var object2 = keys(object1); + var object2 = Object.keys(object1); deepEqual(object2, ['names','age','place']); }); @@ -27,7 +26,7 @@ QUnit.test('should get a key array for property that is named the same as protot toString() {} }; - var object2 = keys(object1); + var object2 = Object.keys(object1); deepEqual(object2, ['toString']); }); @@ -38,7 +37,7 @@ QUnit.test('should not contain properties declared in the prototype', function ( var beer = new Beer(); - deepEqual(keys(beer), []); + deepEqual(Object.keys(beer), []); }); QUnit.test('should return properties that were set after object creation', function () { @@ -49,7 +48,7 @@ QUnit.test('should return properties that were set after object creation', funct set(beer, 'brand', 'big daddy'); - deepEqual(keys(beer), ['brand']); + deepEqual(Object.keys(beer), ['brand']); }); QUnit.module('Keys behavior with observers'); @@ -61,7 +60,7 @@ QUnit.test('should not leak properties on the prototype', function () { var beer = new Beer(); addObserver(beer, 'type', K); - deepEqual(keys(beer), []); + deepEqual(Object.keys(beer), []); removeObserver(beer, 'type', K); }); @@ -73,10 +72,10 @@ QUnit.test('observing a non existent property', function () { addObserver(beer, 'brand', K); - deepEqual(keys(beer), []); + deepEqual(Object.keys(beer), []); set(beer, 'brand', 'Corona'); - deepEqual(keys(beer), ['brand']); + deepEqual(Object.keys(beer), ['brand']); removeObserver(beer, 'brand', K); }); @@ -90,7 +89,7 @@ QUnit.test('with observers switched on and off', function () { addObserver(beer, 'type', K); removeObserver(beer, 'type', K); - deepEqual(keys(beer), []); + deepEqual(Object.keys(beer), []); }); QUnit.test('observers switched on and off with setter in between', function () { @@ -103,7 +102,7 @@ QUnit.test('observers switched on and off with setter in between', function () { set(beer, 'type', 'ale'); removeObserver(beer, 'type', K); - deepEqual(keys(beer), ['type']); + deepEqual(Object.keys(beer), ['type']); }); QUnit.test('observer switched on and off and then setter', function () { @@ -116,5 +115,5 @@ QUnit.test('observer switched on and off and then setter', function () { removeObserver(beer, 'type', K); set(beer, 'type', 'ale'); - deepEqual(keys(beer), ['type']); + deepEqual(Object.keys(beer), ['type']); }); diff --git a/packages/ember-routing-htmlbars/lib/keywords/closure-action.js b/packages/ember-routing-htmlbars/lib/keywords/closure-action.js index ab19c50d882..75b7d16b2b5 100644 --- a/packages/ember-routing-htmlbars/lib/keywords/closure-action.js +++ b/packages/ember-routing-htmlbars/lib/keywords/closure-action.js @@ -3,7 +3,6 @@ import { read, readArray } from 'ember-metal/streams/utils'; -import keys from 'ember-metal/keys'; import { symbol } from 'ember-metal/utils'; import { get } from 'ember-metal/property_get'; import EmberError from 'ember-metal/error'; @@ -14,7 +13,7 @@ export const ACTION = symbol('ACTION'); export default function closureAction(morph, env, scope, params, hash, template, inverse, visitor) { return new Stream(function() { params.map(this.addDependency, this); - keys(hash).map((item) => this.addDependency(item)); + Object.keys(hash).map((item) => this.addDependency(item)); var rawAction = params[0]; var actionArguments = readArray(params.slice(1, params.length)); diff --git a/packages/ember-routing/lib/services/routing.js b/packages/ember-routing/lib/services/routing.js index 2e526687337..9ae69b7f9a6 100644 --- a/packages/ember-routing/lib/services/routing.js +++ b/packages/ember-routing/lib/services/routing.js @@ -8,7 +8,6 @@ import Service from 'ember-runtime/system/service'; import { get } from 'ember-metal/property_get'; import { readOnly } from 'ember-metal/computed_macros'; import { routeArgs } from 'ember-routing/utils'; -import keys from 'ember-metal/keys'; import merge from 'ember-metal/merge'; /** @@ -22,7 +21,7 @@ import merge from 'ember-metal/merge'; @private @class RoutingService */ -var RoutingService = Service.extend({ +export default Service.extend({ router: null, targetState: readOnly('router.targetState'), @@ -30,7 +29,7 @@ var RoutingService = Service.extend({ currentRouteName: readOnly('router.currentRouteName'), availableRoutes() { - return keys(get(this, 'router').router.recognizer.names); + return Object.keys(get(this, 'router').router.recognizer.names); }, hasRoute(routeName) { @@ -89,7 +88,7 @@ var RoutingService = Service.extend({ } }); -var numberOfContextsAcceptedByHandler = function(handler, handlerInfos) { +function numberOfContextsAcceptedByHandler(handler, handlerInfos) { var req = 0; for (var i = 0, l = handlerInfos.length; i < l; i++) { req = req + handlerInfos[i].names.length; @@ -99,6 +98,4 @@ var numberOfContextsAcceptedByHandler = function(handler, handlerInfos) { } return req; -}; - -export default RoutingService; +} diff --git a/packages/ember-routing/lib/system/route.js b/packages/ember-routing/lib/system/route.js index cab87832411..5683d06f10e 100644 --- a/packages/ember-routing/lib/system/route.js +++ b/packages/ember-routing/lib/system/route.js @@ -12,7 +12,6 @@ import { typeOf } from 'ember-runtime/utils'; import run from 'ember-metal/run_loop'; -import keys from 'ember-metal/keys'; import copy from 'ember-runtime/copy'; import { classify @@ -106,7 +105,7 @@ var Route = EmberObject.extend(ActionHandler, Evented, { var controllerName = this.controllerName || this.routeName; var definedControllerClass = this.container.lookupFactory(`controller:${controllerName}`); var queryParameterConfiguraton = get(this, 'queryParams'); - var hasRouterDefinedQueryParams = !!keys(queryParameterConfiguraton).length; + var hasRouterDefinedQueryParams = !!Object.keys(queryParameterConfiguraton).length; if (definedControllerClass) { // the developer has authored a controller class in their application for this route @@ -739,7 +738,7 @@ var Route = EmberObject.extend(ActionHandler, Evented, { queryParamsDidChange(changed, totalPresent, removed) { var qpMap = get(this, '_qp').map; - var totalChanged = keys(changed).concat(keys(removed)); + var totalChanged = Object.keys(changed).concat(Object.keys(removed)); for (var i = 0, len = totalChanged.length; i < len; ++i) { var qp = qpMap[totalChanged[i]]; if (qp && get(this._optionsForQueryParam(qp), 'refreshModel')) { diff --git a/packages/ember-runtime/lib/computed/reduce_computed_macros.js b/packages/ember-runtime/lib/computed/reduce_computed_macros.js index 8b56327d165..1e86e2991cf 100644 --- a/packages/ember-runtime/lib/computed/reduce_computed_macros.js +++ b/packages/ember-runtime/lib/computed/reduce_computed_macros.js @@ -15,7 +15,6 @@ import { addObserver } from 'ember-metal/observer'; import { arrayComputed } from 'ember-runtime/computed/array_computed'; import { reduceComputed } from 'ember-runtime/computed/reduce_computed'; import SubArray from 'ember-runtime/system/subarray'; -import keys from 'ember-metal/keys'; import compare from 'ember-runtime/compare'; var a_slice = [].slice; @@ -497,7 +496,7 @@ export function intersect() { } if (++itemCounts[itemGuid][dependentGuid] === 1 && - numberOfDependentArrays === keys(itemCounts[itemGuid]).length) { + numberOfDependentArrays === Object.keys(itemCounts[itemGuid]).length) { array.addObject(item); } @@ -516,7 +515,7 @@ export function intersect() { if (--itemCounts[itemGuid][dependentGuid] === 0) { delete itemCounts[itemGuid][dependentGuid]; - numberOfArraysItemAppearsIn = keys(itemCounts[itemGuid]).length; + numberOfArraysItemAppearsIn = Object.keys(itemCounts[itemGuid]).length; if (numberOfArraysItemAppearsIn === 0) { delete itemCounts[itemGuid]; diff --git a/packages/ember-runtime/lib/inject.js b/packages/ember-runtime/lib/inject.js index eb6398d2a61..3dea0d2758c 100644 --- a/packages/ember-runtime/lib/inject.js +++ b/packages/ember-runtime/lib/inject.js @@ -1,6 +1,5 @@ import Ember from 'ember-metal/core'; // Ember.assert import InjectedProperty from 'ember-metal/injected_property'; -import keys from 'ember-metal/keys'; /** Namespace for injection helper methods. @@ -10,9 +9,8 @@ import keys from 'ember-metal/keys'; @static @public */ -function inject() { - Ember.assert('Injected properties must be created through helpers, see `' + - keys(inject).join('`, `') + '`'); +export default function inject() { + Ember.assert(`Injected properties must be created through helpers, see '${Object.keys(inject).join("`, `")}'`); } // Dictionary of injection validations by type, added to by `createInjectionHelper` @@ -72,5 +70,3 @@ export function validatePropertyInjections(factory) { return true; } - -export default inject; diff --git a/packages/ember-runtime/lib/system/core_object.js b/packages/ember-runtime/lib/system/core_object.js index 52136bd31d5..a82f13de181 100644 --- a/packages/ember-runtime/lib/system/core_object.js +++ b/packages/ember-runtime/lib/system/core_object.js @@ -37,7 +37,6 @@ import { REQUIRED } from 'ember-metal/mixin'; import EmberError from 'ember-metal/error'; -import keys from 'ember-metal/keys'; import ActionHandler from 'ember-runtime/mixins/action_handler'; import { defineProperty } from 'ember-metal/properties'; import { Binding } from 'ember-metal/binding'; @@ -99,7 +98,7 @@ function makeCtor() { if (!properties) { continue; } - var keyNames = keys(properties); + var keyNames = Object.keys(properties); for (var j = 0, ll = keyNames.length; j < ll; j++) { var keyName = keyNames[j]; diff --git a/packages/ember-runtime/tests/computed/reduce_computed_test.js b/packages/ember-runtime/tests/computed/reduce_computed_test.js index 5edb14d6bff..73d7f9259e1 100644 --- a/packages/ember-runtime/tests/computed/reduce_computed_test.js +++ b/packages/ember-runtime/tests/computed/reduce_computed_test.js @@ -7,7 +7,6 @@ import { set } from 'ember-metal/property_set'; import { meta as metaFor } from 'ember-metal/utils'; import run from 'ember-metal/run_loop'; import { observer } from 'ember-metal/mixin'; -import keys from 'ember-metal/keys'; import EmberObject from 'ember-runtime/system/object'; import { ComputedProperty, @@ -57,9 +56,7 @@ QUnit.module('arrayComputed - [DEPRECATED]', { } }), - nestedNumbers: Ember.A([1,2,3,4,5,6].map((n) => { - return EmberObject.create({ p: 'otherProperty', v: n }); - })), + nestedNumbers: Ember.A([1,2,3,4,5,6].map((n) => mberObject.create({ p: 'otherProperty', v: n }))), evenNestedNumbers: arrayComputed({ addedItem(array, item, keyName) { @@ -580,10 +577,17 @@ QUnit.test('recomputations from `arrayComputed` observers add back dependent key deepEqual(titles, ['Kingsguard', 'Queen'], 'precond - value is correct'); +<<<<<<< HEAD ok(meta.deps.people !== undefined, 'people has dependencies'); deepEqual(keys(meta.deps.people), ['titles'], 'only titles depends on people'); equal(meta.deps.people.titles, 1, 'titles depends on people exactly once'); equal(meta.watching.people, 2, 'people has two watchers: the array listener and titles'); +======= + ok(meta.deps.people !== undefined, "people has dependencies"); + deepEqual(Object.keys(meta.deps.people), ["titles"], "only titles depends on people"); + equal(meta.deps.people.titles, 1, "titles depends on people exactly once"); + equal(meta.watching.people, 2, "people has two watchers: the array listener and titles"); +>>>>>>> [CLEANUP Beta] Remove EmberKeys (internally) continue to expose Ember.keys but as 1:1 with Object.keys [ES5-only] run(function() { set(obj, 'people', Ember.A()); @@ -591,12 +595,21 @@ QUnit.test('recomputations from `arrayComputed` observers add back dependent key // Regular CPs are invalidated when their dependent keys change, but array // computeds keep refs up to date +<<<<<<< HEAD deepEqual(titles, [], 'value is correct'); equal(meta.cache.titles, titles, 'value remains cached'); ok(meta.deps.people !== undefined, 'people has dependencies'); deepEqual(keys(meta.deps.people), ['titles'], 'meta.deps.people is unchanged'); equal(meta.deps.people.titles, 1, 'deps.people.titles is unchanged'); equal(meta.watching.people, 2, 'watching.people is unchanged'); +======= + deepEqual(titles, [], "value is correct"); + equal(meta.cache.titles, titles, "value remains cached"); + ok(meta.deps.people !== undefined, "people has dependencies"); + deepEqual(Object.keys(meta.deps.people), ["titles"], "meta.deps.people is unchanged"); + equal(meta.deps.people.titles, 1, "deps.people.titles is unchanged"); + equal(meta.watching.people, 2, "watching.people is unchanged"); +>>>>>>> [CLEANUP Beta] Remove EmberKeys (internally) continue to expose Ember.keys but as 1:1 with Object.keys [ES5-only] }); QUnit.module('Ember.arryComputed - self chains', { diff --git a/packages/ember-runtime/tests/system/object/create_test.js b/packages/ember-runtime/tests/system/object/create_test.js index af5931f9ef9..395bc2e0290 100644 --- a/packages/ember-runtime/tests/system/object/create_test.js +++ b/packages/ember-runtime/tests/system/object/create_test.js @@ -8,7 +8,6 @@ import {Mixin, observer} from 'ember-metal/mixin'; import run from 'ember-metal/run_loop'; import {on} from 'ember-metal/events'; import EmberObject from 'ember-runtime/system/object'; -import keys from 'ember-metal/keys'; var moduleOptions, originalLookup; @@ -357,7 +356,7 @@ QUnit.test('ensure internal properties do not leak', function() { }); var expectedProperties = ['firstName', 'lastName']; - var actualProperties = keys(obj); + var actualProperties = Object.keys(obj); deepEqual(actualProperties, expectedProperties, 'internal properties do not leak'); }); diff --git a/packages/ember-runtime/tests/system/object/destroy_test.js b/packages/ember-runtime/tests/system/object/destroy_test.js index 8834705ce9e..1b98b9b3e70 100644 --- a/packages/ember-runtime/tests/system/object/destroy_test.js +++ b/packages/ember-runtime/tests/system/object/destroy_test.js @@ -7,7 +7,6 @@ import { beginPropertyChanges, endPropertyChanges } from 'ember-metal/property_events'; -import objectKeys from 'ember-metal/keys'; import { testBoth } from 'ember-metal/tests/props_helper'; import EmberObject from 'ember-runtime/system/object'; @@ -136,7 +135,7 @@ QUnit.test('destroyed objects should not see each others changes during teardown new LongLivedObject(); run(function () { - var keys = objectKeys(objs); + var keys = Object.keys(objs); for (var i = 0, l = keys.length; i < l; i++) { objs[keys[i]].destroy(); } diff --git a/packages/ember-views/lib/compat/attrs-proxy.js b/packages/ember-views/lib/compat/attrs-proxy.js index fa21404d6e8..2e1c8ca1561 100644 --- a/packages/ember-views/lib/compat/attrs-proxy.js +++ b/packages/ember-views/lib/compat/attrs-proxy.js @@ -1,11 +1,8 @@ import { get } from 'ember-metal/property_get'; -//import { set } from "ember-metal/property_set"; import { Mixin } from 'ember-metal/mixin'; import { on } from 'ember-metal/events'; import { symbol } from 'ember-metal/utils'; -import objectKeys from 'ember-metal/keys'; import { PROPERTY_DID_CHANGE } from 'ember-metal/property_events'; -//import run from "ember-metal/run_loop"; import { addObserver, @@ -78,7 +75,7 @@ let AttrsProxyMixin = { legacyDidReceiveAttrs: on('didReceiveAttrs', function() { if (this._isAngleBracket) { return; } - var keys = objectKeys(this.attrs); + var keys = Object.keys(this.attrs); for (var i=0, l=keys.length; i Date: Mon, 15 Jun 2015 01:09:28 -0400 Subject: [PATCH 2/2] =?UTF-8?q?[CLEANUP=20Beta]=20Drop=20Object.create=20p?= =?UTF-8?q?layful=20=E2=80=93=20just=20use=20Object.create=20[ES5-only]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (╯°□°)╯︵ ʃıɟʎʃod ǝʇɐǝɹɔ ʇɔǝɾqo --- .../tests/system/logging_test.js | 4 ++++ .../tests/accessors/mandatory_setters_test.js | 1 - packages/ember-runtime/lib/inject.js | 2 +- .../tests/computed/reduce_computed_test.js | 22 +++---------------- 4 files changed, 8 insertions(+), 21 deletions(-) diff --git a/packages/ember-application/tests/system/logging_test.js b/packages/ember-application/tests/system/logging_test.js index 4c974a5402a..0f51e2f4cfb 100644 --- a/packages/ember-application/tests/system/logging_test.js +++ b/packages/ember-application/tests/system/logging_test.js @@ -1,3 +1,5 @@ +/*globals EmberDev */ + import Ember from 'ember-metal/core'; import run from 'ember-metal/run_loop'; import Application from 'ember-application/system/application'; @@ -7,6 +9,8 @@ import Route from 'ember-routing/system/route'; import RSVP from 'ember-runtime/ext/rsvp'; import compile from 'ember-template-compiler/system/compile'; +import 'ember-routing'; + var App, logs, originalLogger; QUnit.module('Ember.Application – logging of generated classes', { diff --git a/packages/ember-metal/tests/accessors/mandatory_setters_test.js b/packages/ember-metal/tests/accessors/mandatory_setters_test.js index 834c4452a7b..993cbf4372d 100644 --- a/packages/ember-metal/tests/accessors/mandatory_setters_test.js +++ b/packages/ember-metal/tests/accessors/mandatory_setters_test.js @@ -114,7 +114,6 @@ if (isEnabled('mandatory-setter')) { }); watch(obj, 'someProp'); - ok(!('someProp' in meta.values), 'blastix'); }); diff --git a/packages/ember-runtime/lib/inject.js b/packages/ember-runtime/lib/inject.js index 3dea0d2758c..cd08fc96831 100644 --- a/packages/ember-runtime/lib/inject.js +++ b/packages/ember-runtime/lib/inject.js @@ -10,7 +10,7 @@ import InjectedProperty from 'ember-metal/injected_property'; @public */ export default function inject() { - Ember.assert(`Injected properties must be created through helpers, see '${Object.keys(inject).join("`, `")}'`); + Ember.assert(`Injected properties must be created through helpers, see '${Object.keys(inject).join('"', '"')}'`); } // Dictionary of injection validations by type, added to by `createInjectionHelper` diff --git a/packages/ember-runtime/tests/computed/reduce_computed_test.js b/packages/ember-runtime/tests/computed/reduce_computed_test.js index 73d7f9259e1..66b4398b8a2 100644 --- a/packages/ember-runtime/tests/computed/reduce_computed_test.js +++ b/packages/ember-runtime/tests/computed/reduce_computed_test.js @@ -56,7 +56,7 @@ QUnit.module('arrayComputed - [DEPRECATED]', { } }), - nestedNumbers: Ember.A([1,2,3,4,5,6].map((n) => mberObject.create({ p: 'otherProperty', v: n }))), + nestedNumbers: Ember.A([1,2,3,4,5,6].map((n) => EmberObject.create({ p: 'otherProperty', v: n }))), evenNestedNumbers: arrayComputed({ addedItem(array, item, keyName) { @@ -577,17 +577,10 @@ QUnit.test('recomputations from `arrayComputed` observers add back dependent key deepEqual(titles, ['Kingsguard', 'Queen'], 'precond - value is correct'); -<<<<<<< HEAD ok(meta.deps.people !== undefined, 'people has dependencies'); - deepEqual(keys(meta.deps.people), ['titles'], 'only titles depends on people'); + deepEqual(Object.keys(meta.deps.people), ['titles'], 'only titles depends on people'); equal(meta.deps.people.titles, 1, 'titles depends on people exactly once'); equal(meta.watching.people, 2, 'people has two watchers: the array listener and titles'); -======= - ok(meta.deps.people !== undefined, "people has dependencies"); - deepEqual(Object.keys(meta.deps.people), ["titles"], "only titles depends on people"); - equal(meta.deps.people.titles, 1, "titles depends on people exactly once"); - equal(meta.watching.people, 2, "people has two watchers: the array listener and titles"); ->>>>>>> [CLEANUP Beta] Remove EmberKeys (internally) continue to expose Ember.keys but as 1:1 with Object.keys [ES5-only] run(function() { set(obj, 'people', Ember.A()); @@ -595,21 +588,12 @@ QUnit.test('recomputations from `arrayComputed` observers add back dependent key // Regular CPs are invalidated when their dependent keys change, but array // computeds keep refs up to date -<<<<<<< HEAD deepEqual(titles, [], 'value is correct'); equal(meta.cache.titles, titles, 'value remains cached'); ok(meta.deps.people !== undefined, 'people has dependencies'); - deepEqual(keys(meta.deps.people), ['titles'], 'meta.deps.people is unchanged'); + deepEqual(Object.keys(meta.deps.people), ['titles'], 'meta.deps.people is unchanged'); equal(meta.deps.people.titles, 1, 'deps.people.titles is unchanged'); equal(meta.watching.people, 2, 'watching.people is unchanged'); -======= - deepEqual(titles, [], "value is correct"); - equal(meta.cache.titles, titles, "value remains cached"); - ok(meta.deps.people !== undefined, "people has dependencies"); - deepEqual(Object.keys(meta.deps.people), ["titles"], "meta.deps.people is unchanged"); - equal(meta.deps.people.titles, 1, "deps.people.titles is unchanged"); - equal(meta.watching.people, 2, "watching.people is unchanged"); ->>>>>>> [CLEANUP Beta] Remove EmberKeys (internally) continue to expose Ember.keys but as 1:1 with Object.keys [ES5-only] }); QUnit.module('Ember.arryComputed - self chains', {