Continue astral symbol support in _.trunc.

This commit is contained in:
John-David Dalton
2015-09-15 20:40:49 -07:00
parent e04a512c4c
commit d652f144b2

View File

@@ -11102,25 +11102,34 @@
omission = 'omission' in options ? baseToString(options.omission) : omission; omission = 'omission' in options ? baseToString(options.omission) : omission;
} }
string = baseToString(string); string = baseToString(string);
if (length >= stringSize(string)) {
var strLength = string.length;
if (reStrSurrogate.test(string)) {
var strSymbols = stringToArray(string);
strLength = strSymbols.length;
}
if (length >= strLength) {
return string; return string;
} }
var end = length - stringSize(omission); var end = length - stringSize(omission);
if (end < 1) { if (end < 1) {
return omission; return omission;
} }
var result = reStrSurrogate.test(string) var result = strSymbols
? stringToArray(string).slice(0, end).join('') ? strSymbols.slice(0, end).join('')
: string.slice(0, end); : string.slice(0, end);
if (separator === undefined) { if (separator === undefined) {
return result + omission; return result + omission;
} }
if (strSymbols) {
end += (result.length - end);
}
if (isRegExp(separator)) { if (isRegExp(separator)) {
if (string.slice(end).search(separator)) { if (string.slice(end).search(separator)) {
var match, var match,
newEnd, newEnd,
substring = string.slice(0, end); substring = result;
if (!separator.global) { if (!separator.global) {
separator = RegExp(separator.source, (reFlags.exec(separator) || '') + 'g'); separator = RegExp(separator.source, (reFlags.exec(separator) || '') + 'g');