test/script/basic/JDK-8074021.js

Fri, 27 Feb 2015 19:16:29 +0530

author
sundar
date
Fri, 27 Feb 2015 19:16:29 +0530
changeset 1241
cbc1fc667d77
permissions
-rw-r--r--

8074021: Indirect eval fails when used as an element of an array or as a property of an object
Reviewed-by: attila, hannesw

sundar@1241 1 /*
sundar@1241 2 * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
sundar@1241 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
sundar@1241 4 *
sundar@1241 5 * This code is free software; you can redistribute it and/or modify it
sundar@1241 6 * under the terms of the GNU General Public License version 2 only, as
sundar@1241 7 * published by the Free Software Foundation.
sundar@1241 8 *
sundar@1241 9 * This code is distributed in the hope that it will be useful, but WITHOUT
sundar@1241 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
sundar@1241 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
sundar@1241 12 * version 2 for more details (a copy is included in the LICENSE file that
sundar@1241 13 * accompanied this code).
sundar@1241 14 *
sundar@1241 15 * You should have received a copy of the GNU General Public License version
sundar@1241 16 * 2 along with this work; if not, write to the Free Software Foundation,
sundar@1241 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
sundar@1241 18 *
sundar@1241 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
sundar@1241 20 * or visit www.oracle.com if you need additional information or have any
sundar@1241 21 * questions.
sundar@1241 22 */
sundar@1241 23
sundar@1241 24 /**
sundar@1241 25 * JDK-8074021: Indirect eval fails when used as an element of an array or as a property of an object
sundar@1241 26 *
sundar@1241 27 * @test
sundar@1241 28 * @run
sundar@1241 29 */
sundar@1241 30
sundar@1241 31 var obj = { foo: eval };
sundar@1241 32 Assert.assertTrue(obj.foo("typeof(print) == 'function'"));
sundar@1241 33 Assert.assertTrue(obj.foo("RegExp instanceof Function"));
sundar@1241 34 Assert.assertEquals(obj.foo("String(new Array(2, 4, 3))"), "2,4,3");
sundar@1241 35 obj.foo("print('hello')");
sundar@1241 36
sundar@1241 37 var args = [ eval ];
sundar@1241 38 Assert.assertTrue(args[0]("typeof(print) == 'function'"));
sundar@1241 39 Assert.assertTrue(args[0]("RegExp instanceof Function"));
sundar@1241 40 Assert.assertEquals(args[0]("String(new Array(2, 4, 3))"), "2,4,3");
sundar@1241 41 args[0]("print('hello')");

mercurial