diff --git a/src/function.js b/src/function.js index 996b62c6a..83db53ba1 100644 --- a/src/function.js +++ b/src/function.js @@ -437,8 +437,9 @@ var PostScriptStack = (function PostScriptStackClosure() { copy: function copy(n) { if (this.stack.length + n >= MAX_STACK_SIZE) error('PostScript function stack overflow.'); - var part = this.stack.slice(this.stack.length - n); - this.stack = this.stack.concat(part); + var stack = this.stack; + for (var i = stack.length - n, j = n - 1; j >= 0; j--, i++) + stack.push(stack[i]); }, index: function index(n) { this.push(this.stack[this.stack.length - n - 1]);