mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-07 10:07:48 +00:00
Add _#toString and _#valueOf.
Former-commit-id: adb194b6270fc72f794c69343891a2e891b90051
This commit is contained in:
3
build.js
3
build.js
@@ -1413,6 +1413,9 @@
|
|||||||
// remove conditional `charCodeCallback` use from `_.max` and `_.min`
|
// remove conditional `charCodeCallback` use from `_.max` and `_.min`
|
||||||
source = source.replace(/!callback *&& *isString\(collection\)[\s\S]+?: */g, '');
|
source = source.replace(/!callback *&& *isString\(collection\)[\s\S]+?: */g, '');
|
||||||
|
|
||||||
|
// remove `lodash.prototype.toString` and `lodash.prototype.valueOf` assignments
|
||||||
|
source = source.replace(/ *lodash\.prototype\.(?:toString|valueOf) *=.+\n/g, '');
|
||||||
|
|
||||||
// remove unused features from `createBound`
|
// remove unused features from `createBound`
|
||||||
if (buildMethods.indexOf('partial') == -1) {
|
if (buildMethods.indexOf('partial') == -1) {
|
||||||
source = source.replace(matchFunction(source, 'createBound'), function(match) {
|
source = source.replace(matchFunction(source, 'createBound'), function(match) {
|
||||||
|
|||||||
18
lodash.js
18
lodash.js
@@ -4043,6 +4043,22 @@
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Produces the `toString` result of the wrapped value.
|
||||||
|
*
|
||||||
|
* @name toString
|
||||||
|
* @memberOf _
|
||||||
|
* @category Chaining
|
||||||
|
* @returns {String} Returns the string result.
|
||||||
|
* @example
|
||||||
|
*
|
||||||
|
* _([1, 2, 3]).toString();
|
||||||
|
* // => '1,2,3'
|
||||||
|
*/
|
||||||
|
function wrapperToString() {
|
||||||
|
return String(this.__wrapped__);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Extracts the wrapped value.
|
* Extracts the wrapped value.
|
||||||
*
|
*
|
||||||
@@ -4196,7 +4212,9 @@
|
|||||||
// add `lodash.prototype.chain` after calling `mixin()` to avoid overwriting
|
// add `lodash.prototype.chain` after calling `mixin()` to avoid overwriting
|
||||||
// it with the wrapped `lodash.chain`
|
// it with the wrapped `lodash.chain`
|
||||||
lodash.prototype.chain = wrapperChain;
|
lodash.prototype.chain = wrapperChain;
|
||||||
|
lodash.prototype.toString = wrapperToString;
|
||||||
lodash.prototype.value = wrapperValue;
|
lodash.prototype.value = wrapperValue;
|
||||||
|
lodash.prototype.valueOf = wrapperValue;
|
||||||
|
|
||||||
// add all mutator Array functions to the wrapper.
|
// add all mutator Array functions to the wrapper.
|
||||||
forEach(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(methodName) {
|
forEach(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(methodName) {
|
||||||
|
|||||||
@@ -694,7 +694,11 @@
|
|||||||
|
|
||||||
equal(lodash.some([false, true, false]), true, '_.some: ' + basename);
|
equal(lodash.some([false, true, false]), true, '_.some: ' + basename);
|
||||||
equal(lodash.template('${a}', object), '${a}', '_.template should ignore ES6 delimiters: ' + basename);
|
equal(lodash.template('${a}', object), '${a}', '_.template should ignore ES6 delimiters: ' + basename);
|
||||||
equal(lodash(1).clone() instanceof lodash, false, '_(...) wrapped values are not chainable by default: ' + basename);
|
|
||||||
|
object = lodash(1);
|
||||||
|
equal(object.clone() instanceof lodash, false, '_(...) wrapped values are not chainable by default: ' + basename);
|
||||||
|
equal(String(object) === '1', false, '_.prototype should not implement its own `toString` method: ' + basename);
|
||||||
|
equal(Number(object) === 1 , false, '_.prototype should not implement its own `valueOf` method: ' + basename);
|
||||||
|
|
||||||
start();
|
start();
|
||||||
});
|
});
|
||||||
|
|||||||
22
test/test.js
22
test/test.js
@@ -1922,6 +1922,28 @@
|
|||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
QUnit.module('lodash(...).toString');
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
test('should return the `toString` result of the wrapped value', function() {
|
||||||
|
var wrapped = _([1, 2, 3]);
|
||||||
|
equal(String(wrapped), '1,2,3');
|
||||||
|
});
|
||||||
|
}());
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
QUnit.module('lodash(...).valueOf');
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
test('should return the `valueOf` result of the wrapped value', function() {
|
||||||
|
var wrapped = _(123);
|
||||||
|
equal(Number(wrapped), 123);
|
||||||
|
});
|
||||||
|
}());
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
QUnit.module('lodash methods');
|
QUnit.module('lodash methods');
|
||||||
|
|
||||||
(function() {
|
(function() {
|
||||||
|
|||||||
Reference in New Issue
Block a user