--- old/test/nashorn/script/trusted/NASHORN-653.js 2020-04-15 19:24:16.000000000 +0530 +++ /dev/null 2020-04-15 19:24:16.000000000 +0530 @@ -1,103 +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-653 : Various problems with isTerminal and dead code generation from ASM - * - * @test - * @run - */ - -var script = " \ -function a() { \ - return true; \ -} \ - \ -function b() { \ - while (x) { \ - return true; \ - } \ -} \ - \ -function c() { \ - while (true) { \ - return true; \ - } \ - } \ - \ -function d() { \ - do { \ - return true; \ - } while (x); \ -} \ -\ -function f() { \ - for (;;) { \ - return true; \ - } \ -} \ -\ -function e() { \ - for (;;) { \ - return true; \ - } \ -} \ -\ -function g() { \ - for(;;) { \ - print('goes on and on and on ... '); \ - } \ - print('x'); \ -} \ -"; - -function runScriptEngine(opts, code) { - var imports = new JavaImporter( - Packages.jdk.nashorn.api.scripting, - java.io, java.lang, java.util); - - with(imports) { - var fac = new NashornScriptEngineFactory(); - // get current System.err - var oldErr = System.err; - var baos = new ByteArrayOutputStream(); - var newErr = new PrintStream(baos); - try { - // set new standard err - System.setErr(newErr); - var engine = fac.getScriptEngine(Java.to(opts, "java.lang.String[]")); - engine.eval(code); - newErr.flush(); - return new java.lang.String(baos.toByteArray()); - } finally { - // restore System.err to old value - System.setErr(oldErr); - } - } -} - -var result = runScriptEngine([ "--print-code" ], script); - -if (result.indexOf("NOP") != -1) { - fail("ASM genenerates NOP*/ATHROW sequences - dead code is still in the script"); -}