--- old/test/nashorn/script/basic/NASHORN-444.js 2020-04-15 19:09:17.000000000 +0530 +++ /dev/null 2020-04-15 19:09:18.000000000 +0530 @@ -1,71 +0,0 @@ -/* - * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -/* - * NASHORN-444 : regex returns different result on second invocation. - * - * @test - * @run - */ - -var formatRegExp = /%[sdj%]/g; -var format = function(f) { - if (typeof f !== 'string') { - var objects = []; - for (var i = 0; i < arguments.length; i++) { - objects.push(inspect(arguments[i])); - } - return objects.join(' '); - } - - var i = 1; - var args = arguments; - var len = args.length; - if (formatRegExp.lastIndex !== 0) throw "expected lastIndex === 0, actual: " + formatRegExp.lastIndex; - var str = String(f).replace(formatRegExp, function(x) { - if (x === '%%') return '%'; - if (i >= len) return x; - switch (x) { - case '%s': return String(args[i++]); - case '%d': return Number(args[i++]); - case '%j': return JSON.stringify(args[i++]); - default: - return x; - } - }); - print(i + ' '+len); - if (formatRegExp.lastIndex !== 0) throw "expected lastIndex === 0, actual: " + formatRegExp.lastIndex; - return str; -}; - -var obj = function() { - return { - a: 1, - b: 2 - }; -}; - -var o = obj(); -print(format('obj %j', o)); -print(format('obj %j', o)); -