test/script/basic/JDK-8066236.js

Tue, 21 Mar 2017 13:41:57 -0700

author
asaha
date
Tue, 21 Mar 2017 13:41:57 -0700
changeset 2160
1df40fe54cd6
parent 1482
58791cd01bc9
permissions
-rw-r--r--

Merge

attila@1123 1 /*
sundar@1482 2 * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
attila@1123 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
sundar@1482 4 *
attila@1123 5 * This code is free software; you can redistribute it and/or modify it
attila@1123 6 * under the terms of the GNU General Public License version 2 only, as
attila@1123 7 * published by the Free Software Foundation.
sundar@1482 8 *
attila@1123 9 * This code is distributed in the hope that it will be useful, but WITHOUT
attila@1123 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
attila@1123 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
attila@1123 12 * version 2 for more details (a copy is included in the LICENSE file that
attila@1123 13 * accompanied this code).
sundar@1482 14 *
attila@1123 15 * You should have received a copy of the GNU General Public License version
attila@1123 16 * 2 along with this work; if not, write to the Free Software Foundation,
attila@1123 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
sundar@1482 18 *
attila@1123 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
attila@1123 20 * or visit www.oracle.com if you need additional information or have any
attila@1123 21 * questions.
attila@1123 22 */
attila@1123 23
attila@1123 24 /**
attila@1123 25 * JDK-8066236: RuntimeNode forces copy creation on visitation
attila@1123 26 *
attila@1123 27 * @test
attila@1123 28 * @run
attila@1123 29 */
attila@1123 30
attila@1123 31 // Note: we're using Function("code") instead of (function(){ code }) so that
attila@1123 32 // we don't trigger parser API validation in JDK-8008448 tests. The test code
attila@1123 33 // encapsulated in functions below can't be correctly handled by the parser API
attila@1123 34 // currently, as it contains parser-generated REFERENCE_ERROR runtime nodes.
attila@1123 35 try {
attila@1123 36 Function("L: {this = x;break L}")();
attila@1123 37 } catch (e) {
attila@1123 38 print("threw ReferenceError: " + (e instanceof ReferenceError));
attila@1123 39 }
attila@1123 40 try {
attila@1123 41 Function("L:with(this--)break L;")();
attila@1123 42 } catch (e) {
attila@1123 43 print("threw ReferenceError: " + (e instanceof ReferenceError));
attila@1123 44 }
attila@1123 45 Function("L:with(Object in Object)break L;")();
attila@1123 46 print("SUCCESS");

mercurial