Align _.keys with ES6 and coerce primitives to objects.

This commit is contained in:
John-David Dalton
2014-06-16 12:27:21 -07:00
parent 4f9da35b76
commit 73f6fd49d0
4 changed files with 26 additions and 18 deletions

View File

@@ -5721,6 +5721,11 @@
deepEqual(actual.sort(), ['a', 'b']);
});
test('`_.' + methodName + '` should coerce primitives to objects', 1, function() {
var actual = func('abc');
deepEqual(actual.sort(), ['0', '1', '2']);
});
test('`_.' + methodName + '` should treat sparse arrays as dense', 1, function() {
var array = [1];
array[2] = 3;
@@ -5729,7 +5734,7 @@
deepEqual(actual.sort(), ['0', '1', '2']);
});
test('`_.' + methodName + '` should custom properties on arrays', 1, function() {
test('`_.' + methodName + '` should return keys for custom properties on arrays', 1, function() {
var array = [1];
array.a = 1;
@@ -5755,7 +5760,7 @@
}
});
test('`_.' + methodName + '` should custom properties on `arguments` objects', 1, function() {
test('`_.' + methodName + '` should return keys for custom properties on `arguments` objects', 1, function() {
if (!(isPhantom || isStrict)) {
args.a = 1;
var actual = func(args);
@@ -5785,7 +5790,7 @@
deepEqual(actual.sort(), ['0', '1', '2']);
});
test('`_.' + methodName + '` should custom properties on string objects', 1, function() {
test('`_.' + methodName + '` should return keys for custom properties on string objects', 1, function() {
var object = Object('a');
object.a = 1;

View File

@@ -110,7 +110,8 @@
'Died on test #63'
],
'keys': [
'is not fooled by sparse arrays; see issue #95'
'is not fooled by sparse arrays; see issue #95',
'[]'
],
'omit': [
'can accept a predicate'