Skip to content

Commit

Permalink
Merge pull request #11459 from stefanpenner/remove-object-keys
Browse files Browse the repository at this point in the history
[CLEANUP Beta] Remove EmberKeys (internally) continue to expose Ember…
  • Loading branch information
stefanpenner committed Jun 18, 2015
2 parents e2355a6 + 3f8df7a commit 9bf5428
Show file tree
Hide file tree
Showing 24 changed files with 47 additions and 81 deletions.
3 changes: 1 addition & 2 deletions packages/container/lib/container.js
Original file line number Diff line number Diff line change
@@ -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.
Expand Down Expand Up @@ -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++) {
Expand Down
3 changes: 1 addition & 2 deletions packages/container/lib/registry.js
Original file line number Diff line number Diff line change
@@ -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';

Expand Down Expand Up @@ -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];
Expand Down
3 changes: 1 addition & 2 deletions packages/ember-application/lib/system/resolver.js
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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];

Expand Down
9 changes: 4 additions & 5 deletions packages/ember-application/tests/system/logging_test.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ 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';
Expand Down Expand Up @@ -88,7 +87,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');
});
});

Expand All @@ -100,7 +99,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');
});
});

Expand Down Expand Up @@ -202,7 +201,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');
});
});

Expand Down Expand Up @@ -232,6 +231,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');
});
});
3 changes: 1 addition & 2 deletions packages/ember-htmlbars/lib/helpers/each-in.js
Original file line number Diff line number Diff line change
@@ -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];
Expand Down
3 changes: 1 addition & 2 deletions packages/ember-htmlbars/lib/keywords/collection.js
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand All @@ -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);
}
},
Expand Down
3 changes: 1 addition & 2 deletions packages/ember-htmlbars/lib/keywords/view.js
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down Expand Up @@ -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);
}
},
Expand Down
3 changes: 1 addition & 2 deletions packages/ember-htmlbars/lib/system/discover-known-helpers.js
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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];
Expand Down
Original file line number Diff line number Diff line change
@@ -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';
Expand Down Expand Up @@ -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');
});
Expand All @@ -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');
});
Expand All @@ -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');
});
Expand Down
3 changes: 1 addition & 2 deletions packages/ember-metal/lib/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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
Expand Down
6 changes: 2 additions & 4 deletions packages/ember-metal/lib/merge.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
import keys from 'ember-metal/keys';

/**
Merge the contents of two objects together into the first object.
Expand All @@ -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;

Expand All @@ -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<l; i++) {
let prop = updates[i];
Expand Down
5 changes: 2 additions & 3 deletions packages/ember-metal/lib/set_properties.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { changeProperties } from 'ember-metal/property_events';
import { set } from 'ember-metal/property_set';
import keys from 'ember-metal/keys';

/**
Set a list of properties on an object. These properties are set inside
Expand All @@ -25,8 +24,8 @@ import keys from 'ember-metal/keys';
*/
export default function setProperties(obj, properties) {
if (!properties || typeof properties !== 'object') { return properties; }
changeProperties(function() {
var props = keys(properties);
changeProperties(() => {
var props = Object.keys(properties);
var propertyName;

for (var i = 0, l = props.length; i < l; i++) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,6 @@ if (isEnabled('mandatory-setter')) {
});

watch(obj, 'someProp');

ok(!('someProp' in meta.values), 'blastix');
});

Expand Down
21 changes: 10 additions & 11 deletions packages/ember-metal/tests/keys_test.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import { set } from 'ember-metal/property_set';
import keys from 'ember-metal/keys';
import {
addObserver,
removeObserver
Expand All @@ -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']);
});
Expand All @@ -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']);
});
Expand All @@ -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 () {
Expand All @@ -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');
Expand All @@ -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);
});

Expand All @@ -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);
});
Expand All @@ -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 () {
Expand All @@ -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 () {
Expand All @@ -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']);
});
Original file line number Diff line number Diff line change
Expand Up @@ -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';
Expand All @@ -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));
Expand Down
Loading

0 comments on commit 9bf5428

Please sign in to comment.