|
813 | 813 |
|
814 | 814 | try { |
815 | 815 | var symObject = Object(symbol); |
| 816 | + |
| 817 | + // Avoid symbol detection in Babel's `typeof` helper. |
816 | 818 | symObject.constructor = Object; |
| 819 | + |
817 | 820 | actual = [ |
818 | | - Symbol ? lodashBizarro.clone(symObject) : {}, |
| 821 | + Symbol ? lodashBizarro.clone(symObject) : { 'constructor': Object }, |
819 | 822 | Symbol ? lodashBizarro.isEqual(symObject, Object(symbol)) : false, |
820 | 823 | Symbol ? lodashBizarro.toString(symObject) : '' |
821 | 824 | ]; |
822 | 825 | } catch (e) { |
823 | 826 | actual = null; |
824 | 827 | } |
825 | 828 | label = message('_.clone`, `_.isEqual`, and `_.toString', 'Symbol'); |
826 | | - assert.deepEqual(actual, [{}, false, ''], label); |
| 829 | + assert.deepEqual(actual, [{ 'constructor': Object }, false, ''], label); |
827 | 830 |
|
828 | 831 | try { |
829 | 832 | var map = new lodashBizarro.memoize.Cache; |
|
2632 | 2635 | assert.strictEqual(actual.lastIndex, 3); |
2633 | 2636 | }); |
2634 | 2637 |
|
| 2638 | + QUnit.test('`_.' + methodName + '` should clone expando properties', function(assert) { |
| 2639 | + assert.expect(1); |
| 2640 | + |
| 2641 | + var values = lodashStable.map([true, false, 1, 'a'], function(value) { |
| 2642 | + var object = Object(value); |
| 2643 | + object.a = 1; |
| 2644 | + return object; |
| 2645 | + }); |
| 2646 | + |
| 2647 | + var expected = lodashStable.map(values, alwaysTrue); |
| 2648 | + |
| 2649 | + var actual = lodashStable.map(values, function(value) { |
| 2650 | + return func(value).a === 1; |
| 2651 | + }); |
| 2652 | + |
| 2653 | + assert.deepEqual(actual, expected); |
| 2654 | + }); |
| 2655 | + |
2635 | 2656 | QUnit.test('`_.' + methodName + '` should clone prototype objects', function(assert) { |
2636 | 2657 | assert.expect(2); |
2637 | 2658 |
|
|
0 commit comments