Optimize TextLayerRenderTask._layoutText to avoid intermediate string creation

This method creates quite a few intermediate strings on each call and
it's called often, even for smaller documents like the Tracemonkey
document. Scrolling from top to bottom in that document resulted in
12936 strings being created in this method. With this commit applied,
this is reduced to 3610 strings.
This commit is contained in:
Tim van der Meij 2018-12-30 14:34:43 +01:00
parent 7c080584b6
commit 95f9075565
No known key found for this signature in database
GPG Key ID: 8C3FD2925A5F2762

View File

@ -540,12 +540,12 @@ var renderTextLayer = (function renderTextLayerClosure() {
let transform = '';
if (textDivProperties.canvasWidth !== 0 && width > 0) {
textDivProperties.scale = textDivProperties.canvasWidth / width;
transform = 'scaleX(' + textDivProperties.scale + ')';
transform = `scaleX(${textDivProperties.scale})`;
}
if (textDivProperties.angle !== 0) {
transform = 'rotate(' + textDivProperties.angle + 'deg) ' + transform;
transform = `rotate(${textDivProperties.angle}deg) ${transform}`;
}
if (transform !== '') {
if (transform.length > 0) {
textDivProperties.originalTransform = transform;
textDiv.style.transform = transform;
}