Comparing version 1.150.9-review-changes.952 to 1.150.9-review-changes.1024
@@ -493,3 +493,2 @@ "use strict"; | ||
case 'number': | ||
case 'string': | ||
{ | ||
@@ -499,2 +498,30 @@ if (unwrap(left) === unwrap(right)) return left; | ||
} | ||
case 'string': | ||
{ | ||
var leftRaw = unwrap(left); | ||
var rightRaw = unwrap(right); | ||
if (leftRaw === rightRaw) return left; | ||
var result = rightModel.copyString(null); | ||
var prefix = (0, _utf.commonPrefix)(leftRaw, rightRaw); | ||
var suffix = (0, _utf.commonSuffix)(leftRaw, rightRaw, prefix); | ||
var rightLen = (0, _utf.utf8stringSize)(rightRaw); | ||
var leftLen = (0, _utf.utf8stringSize)(leftRaw); | ||
if (0 < prefix) { | ||
rightModel.stringAppendSlice(result, left, 0, prefix); | ||
} | ||
if (prefix < rightLen - suffix) { | ||
rightModel.stringAppendSlice(result, right, prefix, rightLen - suffix); | ||
} | ||
if (leftLen - suffix < leftLen) { | ||
rightModel.stringAppendSlice(result, left, leftLen - suffix, leftLen); | ||
} | ||
var value = rightModel.finalize(result); | ||
if (unwrap(value) !== rightRaw) throw new Error('incorrect string rebase'); | ||
return value; | ||
} | ||
} | ||
@@ -501,0 +528,0 @@ |
@@ -5,1 +5,3 @@ export declare function utf8charSize(code: number): 1 | 2 | 3 | 4; | ||
export declare function utf8resolveIndex(str: string, idx: number, start?: number): number; | ||
export declare function commonPrefix(str: string, str2: string): number; | ||
export declare function commonSuffix(str: string, str2: string, prefix?: number): number; |
@@ -9,2 +9,4 @@ "use strict"; | ||
exports.utf8resolveIndex = utf8resolveIndex; | ||
exports.commonPrefix = commonPrefix; | ||
exports.commonSuffix = commonSuffix; | ||
@@ -52,2 +54,35 @@ function utf8charSize(code) { | ||
return ucsIdx; | ||
} | ||
function commonPrefix(str, str2) { | ||
var len = Math.min(str.length, str2.length); | ||
var b = 0; | ||
for (var i = 0; i < len;) { | ||
var aPoint = str.codePointAt(i); | ||
var bPoint = str2.codePointAt(i); | ||
if (aPoint !== bPoint) return b; | ||
var size = utf8charSize(aPoint); | ||
b += size; | ||
i += size === 4 ? 2 : 1; | ||
} | ||
return b; | ||
} | ||
function commonSuffix(str, str2) { | ||
var prefix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; | ||
var len = Math.min(str.length, str2.length) - prefix; | ||
var b = 0; | ||
for (var i = 0; i < len;) { | ||
var aPoint = str.codePointAt(str.length - 1 - i); | ||
var bPoint = str2.codePointAt(str2.length - 1 - i); | ||
if (aPoint !== bPoint) return b; | ||
var size = utf8charSize(aPoint); | ||
b += size; | ||
i += size === 4 ? 2 : 1; | ||
} | ||
return b; | ||
} |
{ | ||
"name": "mendoza", | ||
"version": "1.150.9-review-changes.952+8ed95fc53", | ||
"version": "1.150.9-review-changes.1024+fbcb62abc", | ||
"description": "", | ||
@@ -38,3 +38,3 @@ "main": "./lib/index.js", | ||
}, | ||
"gitHead": "8ed95fc53e8d080bf1d5330a6737d46a85c3f1a5" | ||
"gitHead": "fbcb62abc60fe6405272e062f49093a2c1269ae4" | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Manifest confusion
Supply chain riskThis package has inconsistent metadata. This could be malicious or caused by an error when publishing the package.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Manifest confusion
Supply chain riskThis package has inconsistent metadata. This could be malicious or caused by an error when publishing the package.
Found 1 instance in 1 package
36350
946