Tue, 11 Aug 2015 12:49:01 -0700
Merge
1.1 --- a/make/build.xml Fri Aug 07 11:55:46 2015 -0700 1.2 +++ b/make/build.xml Tue Aug 11 12:49:01 2015 -0700 1.3 @@ -209,10 +209,11 @@ 1.4 </jar> 1.5 </target> 1.6 1.7 + <!-- generate javadoc for all Nashorn and ASM classes --> 1.8 <target name="javadoc" depends="jar"> 1.9 <javadoc destdir="${dist.javadoc.dir}" use="yes" overview="${src.dir}/overview.html" 1.10 extdirs="${nashorn.ext.path}" windowtitle="${nashorn.product.name} ${nashorn.version}" 1.11 - additionalparam="-quiet" failonerror="true"> 1.12 + additionalparam="-quiet" failonerror="true" useexternalfile="true"> 1.13 <classpath> 1.14 <pathelement location="${build.classes.dir}"/> 1.15 </classpath> 1.16 @@ -226,10 +227,23 @@ 1.17 </javadoc> 1.18 </target> 1.19 1.20 + <!-- generate javadoc for Nashorn classes --> 1.21 + <target name="javadocnh" depends="jar"> 1.22 + <javadoc destdir="${dist.javadoc.dir}" use="yes" overview="${src.dir}/overview.html" 1.23 + extdirs="${nashorn.ext.path}" windowtitle="${nashorn.product.name} ${nashorn.version}" 1.24 + additionalparam="-quiet" failonerror="true" useexternalfile="true"> 1.25 + <classpath> 1.26 + <pathelement location="${build.classes.dir}"/> 1.27 + </classpath> 1.28 + <fileset dir="${src.dir}" includes="**/*.java"/> 1.29 + <link href="http://docs.oracle.com/javase/8/docs/api/"/> 1.30 + </javadoc> 1.31 + </target> 1.32 + 1.33 <!-- generate javadoc only for nashorn extension api classes --> 1.34 <target name="javadocapi" depends="jar"> 1.35 <javadoc destdir="${dist.javadoc.dir}" use="yes" extdirs="${nashorn.ext.path}" 1.36 - windowtitle="${nashorn.product.name}" additionalparam="-quiet" failonerror="true"> 1.37 + windowtitle="${nashorn.product.name}" additionalparam="-quiet" failonerror="true" useexternalfile="true"> 1.38 <classpath> 1.39 <pathelement location="${build.classes.dir}"/> 1.40 </classpath> 1.41 @@ -238,7 +252,6 @@ 1.42 </javadoc> 1.43 </target> 1.44 1.45 - 1.46 <!-- generate shell.html for shell tool documentation --> 1.47 <target name="shelldoc" depends="jar"> 1.48 <java classname="${nashorn.shell.tool}" dir="${basedir}" output="${dist.dir}/shell.html" failonerror="true" fork="true"> 1.49 @@ -460,7 +473,7 @@ 1.50 </testng> 1.51 </target> 1.52 1.53 - <target name="test" depends="get-testng, javadoc, test-pessimistic, test-optimistic"/> 1.54 + <target name="test" depends="get-testng, javadocnh, test-pessimistic, test-optimistic"/> 1.55 1.56 <target name="test-optimistic" depends="jar, -test-classes-all,-test-classes-single, check-testng, check-external-tests, compile-test, generate-policy-file" if="testng.available"> 1.57 <echo message="Running test suite in OPTIMISTIC mode..."/>
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 2.2 +++ b/samples/javabind.js Tue Aug 11 12:49:01 2015 -0700 2.3 @@ -0,0 +1,44 @@ 2.4 +/* 2.5 + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. 2.6 + * 2.7 + * Redistribution and use in source and binary forms, with or without 2.8 + * modification, are permitted provided that the following conditions 2.9 + * are met: 2.10 + * 2.11 + * - Redistributions of source code must retain the above copyright 2.12 + * notice, this list of conditions and the following disclaimer. 2.13 + * 2.14 + * - Redistributions in binary form must reproduce the above copyright 2.15 + * notice, this list of conditions and the following disclaimer in the 2.16 + * documentation and/or other materials provided with the distribution. 2.17 + * 2.18 + * - Neither the name of Oracle nor the names of its 2.19 + * contributors may be used to endorse or promote products derived 2.20 + * from this software without specific prior written permission. 2.21 + * 2.22 + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS 2.23 + * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 2.24 + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 2.25 + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 2.26 + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 2.27 + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 2.28 + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 2.29 + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 2.30 + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 2.31 + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 2.32 + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 2.33 + */ 2.34 + 2.35 +// bind on a Java method 2.36 + 2.37 +// #javascript "bind" function 2.38 +var bind = Function.prototype.bind; 2.39 + 2.40 +// Java console object 2.41 +var console = java.lang.System.console(); 2.42 + 2.43 +// arguments "this" and prompt string of Console.readLine method are bound 2.44 +var readName = bind.call(console.readLine, console, "Your name: "); 2.45 + 2.46 +// Now call it like a function that takes no arguments! 2.47 +print("Hello,", readName());
3.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 3.2 +++ b/samples/javaconstructorbind.js Tue Aug 11 12:49:01 2015 -0700 3.3 @@ -0,0 +1,69 @@ 3.4 +/* 3.5 + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. 3.6 + * 3.7 + * Redistribution and use in source and binary forms, with or without 3.8 + * modification, are permitted provided that the following conditions 3.9 + * are met: 3.10 + * 3.11 + * - Redistributions of source code must retain the above copyright 3.12 + * notice, this list of conditions and the following disclaimer. 3.13 + * 3.14 + * - Redistributions in binary form must reproduce the above copyright 3.15 + * notice, this list of conditions and the following disclaimer in the 3.16 + * documentation and/or other materials provided with the distribution. 3.17 + * 3.18 + * - Neither the name of Oracle nor the names of its 3.19 + * contributors may be used to endorse or promote products derived 3.20 + * from this software without specific prior written permission. 3.21 + * 3.22 + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS 3.23 + * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 3.24 + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 3.25 + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 3.26 + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 3.27 + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 3.28 + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 3.29 + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 3.30 + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 3.31 + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 3.32 + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 3.33 + */ 3.34 + 3.35 +// bind on a Java constructor 3.36 + 3.37 +// See Function.prototype.bind: 3.38 +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind 3.39 +var bind = Function.prototype.bind; 3.40 + 3.41 +var URL = Java.type("java.net.URL"); 3.42 + 3.43 +// get the constructor that accepts URL, String parameters. 3.44 +// constructor signatures are properties of type object. 3.45 +var newURL = URL["(URL, String)"]; 3.46 + 3.47 +// bind "context" URL parameter. 3.48 +var TwitterURL = bind.call(newURL, null, new URL('https://www.twitter.com')); 3.49 + 3.50 +// now you can create context relative URLs using the bound constructor 3.51 +print(new TwitterURL("sundararajan_a")); 3.52 + 3.53 +// read the URL content and print (optional part) 3.54 + 3.55 +var BufferedReader = Java.type("java.io.BufferedReader"); 3.56 +var InputStreamReader = Java.type("java.io.InputStreamReader"); 3.57 + 3.58 +// function to retrieve text content of the given URL 3.59 +function readTextFromURL(url) { 3.60 + var str = ''; 3.61 + var u = new URL(url); 3.62 + var reader = new BufferedReader( 3.63 + new InputStreamReader(u.openStream())); 3.64 + try { 3.65 + reader.lines().forEach(function(x) str += x); 3.66 + return str; 3.67 + } finally { 3.68 + reader.close(); 3.69 + } 3.70 +} 3.71 + 3.72 +print(readTextFromURL(new TwitterURL("sundararajan_a")));
4.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 4.2 +++ b/samples/mapwith.js Tue Aug 11 12:49:01 2015 -0700 4.3 @@ -0,0 +1,47 @@ 4.4 +/* 4.5 + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. 4.6 + * 4.7 + * Redistribution and use in source and binary forms, with or without 4.8 + * modification, are permitted provided that the following conditions 4.9 + * are met: 4.10 + * 4.11 + * - Redistributions of source code must retain the above copyright 4.12 + * notice, this list of conditions and the following disclaimer. 4.13 + * 4.14 + * - Redistributions in binary form must reproduce the above copyright 4.15 + * notice, this list of conditions and the following disclaimer in the 4.16 + * documentation and/or other materials provided with the distribution. 4.17 + * 4.18 + * - Neither the name of Oracle nor the names of its 4.19 + * contributors may be used to endorse or promote products derived 4.20 + * from this software without specific prior written permission. 4.21 + * 4.22 + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS 4.23 + * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 4.24 + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 4.25 + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 4.26 + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 4.27 + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 4.28 + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 4.29 + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 4.30 + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 4.31 + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 4.32 + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 4.33 + */ 4.34 + 4.35 +// Using a Java map with Javascript "with" statement 4.36 + 4.37 +var map = new java.util.HashMap(); 4.38 +map.put("foo", 34); 4.39 +map.put("bar", "hello"); 4.40 + 4.41 +var obj = { 4.42 + __noSuchProperty__: function(name) { 4.43 + return map.get(name); 4.44 + } 4.45 +}; 4.46 + 4.47 +with(obj) { 4.48 + print(foo); 4.49 + print(bar); 4.50 +}
5.1 --- a/src/jdk/nashorn/internal/codegen/AssignSymbols.java Fri Aug 07 11:55:46 2015 -0700 5.2 +++ b/src/jdk/nashorn/internal/codegen/AssignSymbols.java Tue Aug 11 12:49:01 2015 -0700 5.3 @@ -551,9 +551,7 @@ 5.4 private void defineVarIdent(final VarNode varNode) { 5.5 final IdentNode ident = varNode.getName(); 5.6 final int flags; 5.7 - if (varNode.isAnonymousFunctionDeclaration()) { 5.8 - flags = IS_INTERNAL; 5.9 - } else if (!varNode.isBlockScoped() && lc.getCurrentFunction().isProgram()) { 5.10 + if (!varNode.isBlockScoped() && lc.getCurrentFunction().isProgram()) { 5.11 flags = IS_SCOPE; 5.12 } else { 5.13 flags = 0; 5.14 @@ -785,12 +783,13 @@ 5.15 // If this is a declared variable or a function parameter, delete always fails (except for globals). 5.16 final String name = ident.getName(); 5.17 final Symbol symbol = ident.getSymbol(); 5.18 - final boolean failDelete = strictMode || (!symbol.isScope() && (symbol.isParam() || (symbol.isVar() && !symbol.isProgramLevel()))); 5.19 5.20 - if (failDelete && symbol.isThis()) { 5.21 + if (symbol.isThis()) { 5.22 + // Can't delete "this", ignore and return true 5.23 return LiteralNode.newInstance(unaryNode, true).accept(this); 5.24 } 5.25 final Expression literalNode = (Expression)LiteralNode.newInstance(unaryNode, name).accept(this); 5.26 + final boolean failDelete = strictMode || (!symbol.isScope() && (symbol.isParam() || (symbol.isVar() && !symbol.isProgramLevel()))); 5.27 5.28 if (!failDelete) { 5.29 args.add(compilerConstantIdentifier(SCOPE)); 5.30 @@ -800,6 +799,8 @@ 5.31 5.32 if (failDelete) { 5.33 request = Request.FAIL_DELETE; 5.34 + } else if (symbol.isGlobal() && !symbol.isFunctionDeclaration()) { 5.35 + request = Request.SLOW_DELETE; 5.36 } 5.37 } else if (rhs instanceof AccessNode) { 5.38 final Expression base = ((AccessNode)rhs).getBase();
6.1 --- a/src/jdk/nashorn/internal/codegen/CodeGenerator.java Fri Aug 07 11:55:46 2015 -0700 6.2 +++ b/src/jdk/nashorn/internal/codegen/CodeGenerator.java Tue Aug 11 12:49:01 2015 -0700 6.3 @@ -1480,7 +1480,7 @@ 6.4 } 6.5 @Override 6.6 void consumeStack() { 6.7 - dynamicCall(2 + argsCount, flags); 6.8 + dynamicCall(2 + argsCount, flags, ident.getName()); 6.9 } 6.10 }.emit(); 6.11 } 6.12 @@ -1538,7 +1538,7 @@ 6.13 @Override 6.14 void consumeStack() { 6.15 // Ordinary call 6.16 - dynamicCall(2 + argsCount, flags); 6.17 + dynamicCall(2 + argsCount, flags, "eval"); 6.18 method._goto(eval_done); 6.19 6.20 method.label(invoke_direct_eval); 6.21 @@ -1610,7 +1610,7 @@ 6.22 } 6.23 @Override 6.24 void consumeStack() { 6.25 - dynamicCall(2 + argCount, flags); 6.26 + dynamicCall(2 + argCount, flags, node.getProperty()); 6.27 } 6.28 }.emit(); 6.29 6.30 @@ -1637,7 +1637,7 @@ 6.31 void consumeStack() { 6.32 final int flags = getCallSiteFlags(); 6.33 //assert callNodeType.equals(callee.getReturnType()) : callNodeType + " != " + callee.getReturnType(); 6.34 - dynamicCall(2 + argsCount, flags); 6.35 + dynamicCall(2 + argsCount, flags, origCallee.getName()); 6.36 } 6.37 }.emit(); 6.38 return false; 6.39 @@ -1667,7 +1667,7 @@ 6.40 @Override 6.41 void consumeStack() { 6.42 final int flags = getCallSiteFlags(); 6.43 - dynamicCall(2 + argsCount, flags); 6.44 + dynamicCall(2 + argsCount, flags, null); 6.45 } 6.46 }.emit(); 6.47 return false; 6.48 @@ -1687,7 +1687,7 @@ 6.49 @Override 6.50 void consumeStack() { 6.51 final int flags = getCallSiteFlags() | CALLSITE_SCOPE; 6.52 - dynamicCall(2 + argsCount, flags); 6.53 + dynamicCall(2 + argsCount, flags, null); 6.54 } 6.55 }.emit(); 6.56 return false; 6.57 @@ -3707,10 +3707,12 @@ 6.58 final CallNode callNode = (CallNode)unaryNode.getExpression(); 6.59 final List<Expression> args = callNode.getArgs(); 6.60 6.61 + final Expression func = callNode.getFunction(); 6.62 // Load function reference. 6.63 - loadExpressionAsObject(callNode.getFunction()); // must detect type error 6.64 - 6.65 - method.dynamicNew(1 + loadArgs(args), getCallSiteFlags()); 6.66 + loadExpressionAsObject(func); // must detect type error 6.67 + 6.68 + method.dynamicNew(1 + loadArgs(args), getCallSiteFlags(), 6.69 + func instanceof IdentNode? ((IdentNode)func).getName() : null); 6.70 } 6.71 6.72 private void loadNOT(final UnaryNode unaryNode) { 6.73 @@ -4818,11 +4820,11 @@ 6.74 return method.dynamicGetIndex(resultBounds.within(expression.getType()), nonOptimisticFlags(flags), isMethod); 6.75 } 6.76 6.77 - MethodEmitter dynamicCall(final int argCount, final int flags) { 6.78 + MethodEmitter dynamicCall(final int argCount, final int flags, final String msg) { 6.79 if (isOptimistic) { 6.80 - return method.dynamicCall(getOptimisticCoercedType(), argCount, getOptimisticFlags(flags)); 6.81 - } 6.82 - return method.dynamicCall(resultBounds.within(expression.getType()), argCount, nonOptimisticFlags(flags)); 6.83 + return method.dynamicCall(getOptimisticCoercedType(), argCount, getOptimisticFlags(flags), msg); 6.84 + } 6.85 + return method.dynamicCall(resultBounds.within(expression.getType()), argCount, nonOptimisticFlags(flags), msg); 6.86 } 6.87 6.88 int getOptimisticFlags(final int flags) {
7.1 --- a/src/jdk/nashorn/internal/codegen/Compiler.java Fri Aug 07 11:55:46 2015 -0700 7.2 +++ b/src/jdk/nashorn/internal/codegen/Compiler.java Tue Aug 11 12:49:01 2015 -0700 7.3 @@ -607,7 +607,7 @@ 7.4 newFunctionNode.uniqueName(reservedName); 7.5 } 7.6 7.7 - final boolean info = log.levelFinerThanOrEqual(Level.INFO); 7.8 + final boolean info = log.isLoggable(Level.INFO); 7.9 7.10 final DebugLogger timeLogger = env.isTimingEnabled() ? env._timing.getLogger() : null; 7.11 7.12 @@ -644,8 +644,8 @@ 7.13 if (info) { 7.14 final StringBuilder sb = new StringBuilder("<< Finished compile job for "); 7.15 sb.append(newFunctionNode.getSource()). 7.16 - append(':'). 7.17 - append(quote(newFunctionNode.getName())); 7.18 + append(':'). 7.19 + append(quote(newFunctionNode.getName())); 7.20 7.21 if (time > 0L && timeLogger != null) { 7.22 assert env.isTimingEnabled(); 7.23 @@ -713,7 +713,7 @@ 7.24 if (cacheKey != null && env._persistent_cache) { 7.25 // If this is an on-demand compilation create a function initializer for the function being compiled. 7.26 // Otherwise use function initializer map generated by codegen. 7.27 - Map<Integer, FunctionInitializer> initializers = new HashMap<>(); 7.28 + final Map<Integer, FunctionInitializer> initializers = new HashMap<>(); 7.29 if (isOnDemandCompilation()) { 7.30 initializers.put(functionNode.getId(), new FunctionInitializer(functionNode, getInvalidatedProgramPoints())); 7.31 } else { 7.32 @@ -829,9 +829,9 @@ 7.33 final long totalSize = osc.calculateObjectSize(functionNode); 7.34 7.35 sb.append(phaseName). 7.36 - append(" Total size = "). 7.37 - append(totalSize / 1024 / 1024). 7.38 - append("MB"); 7.39 + append(" Total size = "). 7.40 + append(totalSize / 1024 / 1024). 7.41 + append("MB"); 7.42 log.info(sb); 7.43 7.44 Collections.sort(list, new Comparator<ClassHistogramElement>() {
8.1 --- a/src/jdk/nashorn/internal/codegen/DumpBytecode.java Fri Aug 07 11:55:46 2015 -0700 8.2 +++ b/src/jdk/nashorn/internal/codegen/DumpBytecode.java Tue Aug 11 12:49:01 2015 -0700 8.3 @@ -88,7 +88,7 @@ 8.4 } 8.5 8.6 8.7 - // should code be dumped to disk - only valid in compile_only mode? 8.8 + // should code be dumped to disk 8.9 if (env._dest_dir != null) { 8.10 final String fileName = className.replace('.', File.separatorChar) + ".class"; 8.11 final int index = fileName.lastIndexOf(File.separatorChar);
9.1 --- a/src/jdk/nashorn/internal/codegen/FoldConstants.java Fri Aug 07 11:55:46 2015 -0700 9.2 +++ b/src/jdk/nashorn/internal/codegen/FoldConstants.java Tue Aug 11 12:49:01 2015 -0700 9.3 @@ -353,8 +353,8 @@ 9.4 return null; 9.5 } 9.6 9.7 - isInteger &= JSType.isRepresentableAsInt(value) && !JSType.isNegativeZero(value); 9.8 - isLong &= JSType.isRepresentableAsLong(value) && !JSType.isNegativeZero(value); 9.9 + isInteger &= JSType.isStrictlyRepresentableAsInt(value); 9.10 + isLong &= JSType.isStrictlyRepresentableAsLong(value); 9.11 9.12 if (isInteger) { 9.13 return LiteralNode.newInstance(token, finish, (int)value);
10.1 --- a/src/jdk/nashorn/internal/codegen/MethodEmitter.java Fri Aug 07 11:55:46 2015 -0700 10.2 +++ b/src/jdk/nashorn/internal/codegen/MethodEmitter.java Tue Aug 11 12:49:01 2015 -0700 10.3 @@ -2133,10 +2133,25 @@ 10.4 * @return the method emitter 10.5 */ 10.6 MethodEmitter dynamicNew(final int argCount, final int flags) { 10.7 + return dynamicNew(argCount, flags, null); 10.8 + } 10.9 + 10.10 + /** 10.11 + * Generate a dynamic new 10.12 + * 10.13 + * @param argCount number of arguments 10.14 + * @param flags callsite flags 10.15 + * @param msg additional message to be used when reporting error 10.16 + * 10.17 + * @return the method emitter 10.18 + */ 10.19 + MethodEmitter dynamicNew(final int argCount, final int flags, final String msg) { 10.20 assert !isOptimistic(flags); 10.21 debug("dynamic_new", "argcount=", argCount); 10.22 final String signature = getDynamicSignature(Type.OBJECT, argCount); 10.23 - method.visitInvokeDynamicInsn("dyn:new", signature, LINKERBOOTSTRAP, flags); 10.24 + method.visitInvokeDynamicInsn( 10.25 + msg != null && msg.length() < LARGE_STRING_THRESHOLD? "dyn:new:" + NameCodec.encode(msg) : "dyn:new", 10.26 + signature, LINKERBOOTSTRAP, flags); 10.27 pushType(Type.OBJECT); //TODO fix result type 10.28 return this; 10.29 } 10.30 @@ -2151,10 +2166,26 @@ 10.31 * @return the method emitter 10.32 */ 10.33 MethodEmitter dynamicCall(final Type returnType, final int argCount, final int flags) { 10.34 + return dynamicCall(returnType, argCount, flags, null); 10.35 + } 10.36 + 10.37 + /** 10.38 + * Generate a dynamic call 10.39 + * 10.40 + * @param returnType return type 10.41 + * @param argCount number of arguments 10.42 + * @param flags callsite flags 10.43 + * @param msg additional message to be used when reporting error 10.44 + * 10.45 + * @return the method emitter 10.46 + */ 10.47 + MethodEmitter dynamicCall(final Type returnType, final int argCount, final int flags, final String msg) { 10.48 debug("dynamic_call", "args=", argCount, "returnType=", returnType); 10.49 final String signature = getDynamicSignature(returnType, argCount); // +1 because the function itself is the 1st parameter for dynamic calls (what you call - call target) 10.50 debug(" signature", signature); 10.51 - method.visitInvokeDynamicInsn("dyn:call", signature, LINKERBOOTSTRAP, flags); 10.52 + method.visitInvokeDynamicInsn( 10.53 + msg != null && msg.length() < LARGE_STRING_THRESHOLD? "dyn:call:" + NameCodec.encode(msg) : "dyn:call", 10.54 + signature, LINKERBOOTSTRAP, flags); 10.55 pushType(returnType); 10.56 10.57 return this;
11.1 --- a/src/jdk/nashorn/internal/codegen/ObjectClassGenerator.java Fri Aug 07 11:55:46 2015 -0700 11.2 +++ b/src/jdk/nashorn/internal/codegen/ObjectClassGenerator.java Tue Aug 11 12:49:01 2015 -0700 11.3 @@ -69,7 +69,6 @@ 11.4 import jdk.nashorn.internal.runtime.logging.DebugLogger; 11.5 import jdk.nashorn.internal.runtime.logging.Loggable; 11.6 import jdk.nashorn.internal.runtime.logging.Logger; 11.7 -import jdk.nashorn.internal.runtime.options.Options; 11.8 11.9 /** 11.10 * Generates the ScriptObject subclass structure with fields for a user objects.
12.1 --- a/src/jdk/nashorn/internal/codegen/SharedScopeCall.java Fri Aug 07 11:55:46 2015 -0700 12.2 +++ b/src/jdk/nashorn/internal/codegen/SharedScopeCall.java Tue Aug 11 12:49:01 2015 -0700 12.3 @@ -169,7 +169,7 @@ 12.4 slot += type.getSlots(); 12.5 } 12.6 // Shared scope calls disabled in optimistic world. TODO is this right? 12.7 - method.dynamicCall(returnType, 2 + paramTypes.length, flags); 12.8 + method.dynamicCall(returnType, 2 + paramTypes.length, flags, symbol.getName()); 12.9 } 12.10 12.11 method._return(returnType);
13.1 --- a/src/jdk/nashorn/internal/codegen/SplitIntoFunctions.java Fri Aug 07 11:55:46 2015 -0700 13.2 +++ b/src/jdk/nashorn/internal/codegen/SplitIntoFunctions.java Tue Aug 11 12:49:01 2015 -0700 13.3 @@ -308,10 +308,6 @@ 13.4 assert !varNode.isBlockScoped(); //TODO: we must handle these too, but we currently don't 13.5 13.6 final Expression init = varNode.getInit(); 13.7 - if (varNode.isAnonymousFunctionDeclaration()) { 13.8 - // We ain't moving anonymous function declarations. 13.9 - return super.enterVarNode(varNode); 13.10 - } 13.11 13.12 // Move a declaration-only var statement to the top of the outermost function. 13.13 getCurrentFunctionState().varStatements.add(varNode.setInit(null));
14.1 --- a/src/jdk/nashorn/internal/ir/RuntimeNode.java Fri Aug 07 11:55:46 2015 -0700 14.2 +++ b/src/jdk/nashorn/internal/ir/RuntimeNode.java Tue Aug 11 12:49:01 2015 -0700 14.3 @@ -56,6 +56,8 @@ 14.4 REFERENCE_ERROR, 14.5 /** Delete operator */ 14.6 DELETE(TokenType.DELETE, Type.BOOLEAN, 1), 14.7 + /** Delete operator for slow scopes */ 14.8 + SLOW_DELETE(TokenType.DELETE, Type.BOOLEAN, 1, false), 14.9 /** Delete operator that always fails -- see Lower */ 14.10 FAIL_DELETE(TokenType.DELETE, Type.BOOLEAN, 1, false), 14.11 /** === operator with at least one object */
15.1 --- a/src/jdk/nashorn/internal/ir/VarNode.java Fri Aug 07 11:55:46 2015 -0700 15.2 +++ b/src/jdk/nashorn/internal/ir/VarNode.java Tue Aug 11 12:49:01 2015 -0700 15.3 @@ -262,12 +262,4 @@ 15.4 public boolean isFunctionDeclaration() { 15.5 return init instanceof FunctionNode && ((FunctionNode)init).isDeclared(); 15.6 } 15.7 - 15.8 - /** 15.9 - * Returns true if this is an anonymous function declaration. 15.10 - * @return true if this is an anonymous function declaration. 15.11 - */ 15.12 - public boolean isAnonymousFunctionDeclaration() { 15.13 - return isFunctionDeclaration() && ((FunctionNode)init).isAnonymous(); 15.14 - } 15.15 }
16.1 --- a/src/jdk/nashorn/internal/lookup/MethodHandleFactory.java Fri Aug 07 11:55:46 2015 -0700 16.2 +++ b/src/jdk/nashorn/internal/lookup/MethodHandleFactory.java Tue Aug 11 12:49:01 2015 -0700 16.3 @@ -131,8 +131,8 @@ 16.4 static Object traceReturn(final DebugLogger logger, final Object value) { 16.5 final String str = " return" + 16.6 (VOID_TAG.equals(value) ? 16.7 - ";" : 16.8 - " " + stripName(value) + "; // [type=" + (value == null ? "null]" : stripName(value.getClass()) + ']')); 16.9 + ";" : 16.10 + " " + stripName(value) + "; // [type=" + (value == null ? "null]" : stripName(value.getClass()) + ']')); 16.11 if (logger == null) { 16.12 err(str); 16.13 } else if (logger.isEnabled()) { 16.14 @@ -164,13 +164,13 @@ 16.15 } 16.16 16.17 sb.append('\''). 16.18 - append(stripName(argString(args[i]))). 16.19 - append('\''). 16.20 - append(' '). 16.21 - append('['). 16.22 - append("type="). 16.23 - append(args[i] == null ? "null" : stripName(args[i].getClass())). 16.24 - append(']'); 16.25 + append(stripName(argString(args[i]))). 16.26 + append('\''). 16.27 + append(' '). 16.28 + append('['). 16.29 + append("type="). 16.30 + append(args[i] == null ? "null" : stripName(args[i].getClass())). 16.31 + append(']'); 16.32 16.33 if (i + 1 < args.length) { 16.34 sb.append(", "); 16.35 @@ -216,8 +216,8 @@ 16.36 16.37 if (arg instanceof ScriptObject) { 16.38 return arg.toString() + 16.39 - " (map=" + Debug.id(((ScriptObject)arg).getMap()) + 16.40 - ')'; 16.41 + " (map=" + Debug.id(((ScriptObject)arg).getMap()) + 16.42 + ')'; 16.43 } 16.44 16.45 return arg.toString(); 16.46 @@ -262,7 +262,7 @@ 16.47 return addDebugPrintout(null, Level.OFF, mh, paramStart, printReturnValue, tag); 16.48 } 16.49 16.50 - /** 16.51 + /** 16.52 * Add a debug printout to a method handle, tracing parameters and return values 16.53 * 16.54 * @param logger a specific logger to which to write the output 16.55 @@ -278,7 +278,7 @@ 16.56 16.57 //if there is no logger, or if it's set to log only coarser events 16.58 //than the trace level, skip and return 16.59 - if (logger != null && logger.levelCoarserThan(level)) { 16.60 + if (logger == null || !logger.isLoggable(level)) { 16.61 return mh; 16.62 } 16.63 16.64 @@ -289,9 +289,9 @@ 16.65 trace = MethodHandles.foldArguments( 16.66 mh, 16.67 trace.asCollector( 16.68 - Object[].class, 16.69 - type.parameterCount()). 16.70 - asType(type.changeReturnType(void.class))); 16.71 + Object[].class, 16.72 + type.parameterCount()). 16.73 + asType(type.changeReturnType(void.class))); 16.74 16.75 final Class<?> retType = type.returnType(); 16.76 if (printReturnValue) { 16.77 @@ -299,7 +299,7 @@ 16.78 final MethodHandle traceReturn = MethodHandles.insertArguments(TRACE_RETURN, 0, logger); 16.79 trace = MethodHandles.filterReturnValue(trace, 16.80 traceReturn.asType( 16.81 - traceReturn.type().changeParameterType(0, retType).changeReturnType(retType))); 16.82 + traceReturn.type().changeParameterType(0, retType).changeReturnType(retType))); 16.83 } else { 16.84 trace = MethodHandles.filterReturnValue(trace, MethodHandles.insertArguments(TRACE_RETURN_VOID, 0, logger)); 16.85 } 16.86 @@ -355,9 +355,9 @@ 16.87 sb.append("] "); 16.88 } else { 16.89 sb.append(d) 16.90 - .append('{') 16.91 - .append(Integer.toHexString(System.identityHashCode(d))) 16.92 - .append('}'); 16.93 + .append('{') 16.94 + .append(Integer.toHexString(System.identityHashCode(d))) 16.95 + .append('}'); 16.96 } 16.97 16.98 if (i + 1 < data.length) {
17.1 --- a/src/jdk/nashorn/internal/objects/Global.java Fri Aug 07 11:55:46 2015 -0700 17.2 +++ b/src/jdk/nashorn/internal/objects/Global.java Tue Aug 11 12:49:01 2015 -0700 17.3 @@ -88,14 +88,14 @@ 17.4 */ 17.5 @ScriptClass("Global") 17.6 public final class Global extends Scope { 17.7 - // Placeholder value used in place of a location property (__FILE__, __DIR__, __LINE__) 17.8 - private static final Object LOCATION_PROPERTY_PLACEHOLDER = new Object(); 17.9 + // This special value is used to flag a lazily initialized global property. 17.10 + // This also serves as placeholder value used in place of a location property 17.11 + // (__FILE__, __DIR__, __LINE__) 17.12 + private static final Object LAZY_SENTINEL = new Object(); 17.13 + 17.14 private final InvokeByName TO_STRING = new InvokeByName("toString", ScriptObject.class); 17.15 private final InvokeByName VALUE_OF = new InvokeByName("valueOf", ScriptObject.class); 17.16 17.17 - // placeholder value for lazily initialized global objects 17.18 - private static final Object LAZY_SENTINEL = new Object(); 17.19 - 17.20 /** 17.21 * Optimistic builtin names that require switchpoint invalidation 17.22 * upon assignment. Overly conservative, but works for now, to avoid 17.23 @@ -182,15 +182,15 @@ 17.24 17.25 /** Value property NaN of the Global Object - ECMA 15.1.1.1 NaN */ 17.26 @Property(attributes = Attribute.NON_ENUMERABLE_CONSTANT) 17.27 - public final double NaN = Double.NaN; 17.28 + public static final double NaN = Double.NaN; 17.29 17.30 /** Value property Infinity of the Global Object - ECMA 15.1.1.2 Infinity */ 17.31 @Property(attributes = Attribute.NON_ENUMERABLE_CONSTANT) 17.32 - public final double Infinity = Double.POSITIVE_INFINITY; 17.33 + public static final double Infinity = Double.POSITIVE_INFINITY; 17.34 17.35 /** Value property Undefined of the Global Object - ECMA 15.1.1.3 Undefined */ 17.36 @Property(attributes = Attribute.NON_ENUMERABLE_CONSTANT) 17.37 - public final Object undefined = UNDEFINED; 17.38 + public static final Object undefined = UNDEFINED; 17.39 17.40 /** ECMA 15.1.2.1 eval(x) */ 17.41 @Property(attributes = Attribute.NOT_ENUMERABLE) 17.42 @@ -830,15 +830,15 @@ 17.43 17.44 /** Nashorn extension: current script's file name */ 17.45 @Property(name = "__FILE__", attributes = Attribute.NON_ENUMERABLE_CONSTANT) 17.46 - public final Object __FILE__ = LOCATION_PROPERTY_PLACEHOLDER; 17.47 + public static final Object __FILE__ = LAZY_SENTINEL; 17.48 17.49 /** Nashorn extension: current script's directory */ 17.50 @Property(name = "__DIR__", attributes = Attribute.NON_ENUMERABLE_CONSTANT) 17.51 - public final Object __DIR__ = LOCATION_PROPERTY_PLACEHOLDER; 17.52 + public static final Object __DIR__ = LAZY_SENTINEL; 17.53 17.54 /** Nashorn extension: current source line number being executed */ 17.55 @Property(name = "__LINE__", attributes = Attribute.NON_ENUMERABLE_CONSTANT) 17.56 - public final Object __LINE__ = LOCATION_PROPERTY_PLACEHOLDER; 17.57 + public static final Object __LINE__ = LAZY_SENTINEL; 17.58 17.59 private volatile NativeDate DEFAULT_DATE; 17.60 17.61 @@ -1768,38 +1768,10 @@ 17.62 return ScriptFunction.getPrototype(getBuiltinFloat64Array()); 17.63 } 17.64 17.65 - private ScriptFunction getBuiltinArray() { 17.66 - return builtinArray; 17.67 - } 17.68 - 17.69 ScriptFunction getTypeErrorThrower() { 17.70 return typeErrorThrower; 17.71 } 17.72 17.73 - /** 17.74 - * Called from compiled script code to test if builtin has been overridden 17.75 - * 17.76 - * @return true if builtin array has not been overridden 17.77 - */ 17.78 - public static boolean isBuiltinArray() { 17.79 - final Global instance = Global.instance(); 17.80 - return instance.array == instance.getBuiltinArray(); 17.81 - } 17.82 - 17.83 - private ScriptFunction getBuiltinBoolean() { 17.84 - return builtinBoolean; 17.85 - } 17.86 - 17.87 - /** 17.88 - * Called from compiled script code to test if builtin has been overridden 17.89 - * 17.90 - * @return true if builtin boolean has not been overridden 17.91 - */ 17.92 - public static boolean isBuiltinBoolean() { 17.93 - final Global instance = Global.instance(); 17.94 - return instance._boolean == instance.getBuiltinBoolean(); 17.95 - } 17.96 - 17.97 private synchronized ScriptFunction getBuiltinDate() { 17.98 if (this.builtinDate == null) { 17.99 this.builtinDate = initConstructorAndSwitchPoint("Date", ScriptFunction.class); 17.100 @@ -1810,30 +1782,6 @@ 17.101 return this.builtinDate; 17.102 } 17.103 17.104 - /** 17.105 - * Called from compiled script code to test if builtin has been overridden 17.106 - * 17.107 - * @return true if builtin date has not been overridden 17.108 - */ 17.109 - public static boolean isBuiltinDate() { 17.110 - final Global instance = Global.instance(); 17.111 - return instance.date == LAZY_SENTINEL || instance.date == instance.getBuiltinDate(); 17.112 - } 17.113 - 17.114 - private ScriptFunction getBuiltinError() { 17.115 - return builtinError; 17.116 - } 17.117 - 17.118 - /** 17.119 - * Called from compiled script code to test if builtin has been overridden 17.120 - * 17.121 - * @return true if builtin error has not been overridden 17.122 - */ 17.123 - public static boolean isBuiltinError() { 17.124 - final Global instance = Global.instance(); 17.125 - return instance.error == instance.getBuiltinError(); 17.126 - } 17.127 - 17.128 private synchronized ScriptFunction getBuiltinEvalError() { 17.129 if (this.builtinEvalError == null) { 17.130 this.builtinEvalError = initErrorSubtype("EvalError", getErrorPrototype()); 17.131 @@ -1841,31 +1789,11 @@ 17.132 return this.builtinEvalError; 17.133 } 17.134 17.135 - /** 17.136 - * Called from compiled script code to test if builtin has been overridden 17.137 - * 17.138 - * @return true if builtin eval error has not been overridden 17.139 - */ 17.140 - public static boolean isBuiltinEvalError() { 17.141 - final Global instance = Global.instance(); 17.142 - return instance.evalError == LAZY_SENTINEL || instance.evalError == instance.getBuiltinEvalError(); 17.143 - } 17.144 - 17.145 private ScriptFunction getBuiltinFunction() { 17.146 return builtinFunction; 17.147 } 17.148 17.149 /** 17.150 - * Called from compiled script code to test if builtin has been overridden 17.151 - * 17.152 - * @return true if builtin function has not been overridden 17.153 - */ 17.154 - public static boolean isBuiltinFunction() { 17.155 - final Global instance = Global.instance(); 17.156 - return instance.function == instance.getBuiltinFunction(); 17.157 - } 17.158 - 17.159 - /** 17.160 * Get the switchpoint used to check property changes for Function.prototype.apply 17.161 * @return the switchpoint guarding apply (same as guarding call, and everything else in function) 17.162 */ 17.163 @@ -1906,16 +1834,6 @@ 17.164 return builtinJSAdapter; 17.165 } 17.166 17.167 - /** 17.168 - * Called from compiled script code to test if builtin has been overridden 17.169 - * 17.170 - * @return true if builtin JSAdapter has not been overridden 17.171 - */ 17.172 - public static boolean isBuiltinJSAdapter() { 17.173 - final Global instance = Global.instance(); 17.174 - return instance.jsadapter == LAZY_SENTINEL || instance.jsadapter == instance.getBuiltinJSAdapter(); 17.175 - } 17.176 - 17.177 private synchronized ScriptObject getBuiltinJSON() { 17.178 if (this.builtinJSON == null) { 17.179 this.builtinJSON = initConstructorAndSwitchPoint("JSON", ScriptObject.class); 17.180 @@ -1923,44 +1841,6 @@ 17.181 return this.builtinJSON; 17.182 } 17.183 17.184 - /** 17.185 - * Called from compiled script code to test if builtin has been overridden 17.186 - * 17.187 - * @return true if builtin JSON has has not been overridden 17.188 - */ 17.189 - public static boolean isBuiltinJSON() { 17.190 - final Global instance = Global.instance(); 17.191 - return instance.json == LAZY_SENTINEL || instance.json == instance.getBuiltinJSON(); 17.192 - } 17.193 - 17.194 - private ScriptObject getBuiltinJava() { 17.195 - return builtinJava; 17.196 - } 17.197 - 17.198 - /** 17.199 - * Called from compiled script code to test if builtin has been overridden 17.200 - * 17.201 - * @return true if builtin Java has not been overridden 17.202 - */ 17.203 - public static boolean isBuiltinJava() { 17.204 - final Global instance = Global.instance(); 17.205 - return instance.java == instance.getBuiltinJava(); 17.206 - } 17.207 - 17.208 - private ScriptObject getBuiltinJavax() { 17.209 - return builtinJavax; 17.210 - } 17.211 - 17.212 - /** 17.213 - * Called from compiled script code to test if builtin has been overridden 17.214 - * 17.215 - * @return true if builtin Javax has not been overridden 17.216 - */ 17.217 - public static boolean isBuiltinJavax() { 17.218 - final Global instance = Global.instance(); 17.219 - return instance.javax == instance.getBuiltinJavax(); 17.220 - } 17.221 - 17.222 private synchronized ScriptFunction getBuiltinJavaImporter() { 17.223 if (this.builtinJavaImporter == null) { 17.224 this.builtinJavaImporter = initConstructor("JavaImporter", ScriptFunction.class); 17.225 @@ -1975,68 +1855,6 @@ 17.226 return this.builtinJavaApi; 17.227 } 17.228 17.229 - /** 17.230 - * Called from compiled script code to test if builtin has been overridden 17.231 - * 17.232 - * @return true if builtin Java importer has not been overridden 17.233 - */ 17.234 - public static boolean isBuiltinJavaImporter() { 17.235 - final Global instance = Global.instance(); 17.236 - return instance.javaImporter == LAZY_SENTINEL || instance.javaImporter == instance.getBuiltinJavaImporter(); 17.237 - } 17.238 - 17.239 - /** 17.240 - * Called from compiled script code to test if builtin has been overridden 17.241 - * 17.242 - * @return true if builtin math has not been overridden 17.243 - */ 17.244 - public static boolean isBuiltinMath() { 17.245 - final Global instance = Global.instance(); 17.246 - return instance.math == instance.builtinMath; 17.247 - } 17.248 - 17.249 - private ScriptFunction getBuiltinNumber() { 17.250 - return builtinNumber; 17.251 - } 17.252 - 17.253 - /** 17.254 - * Called from compiled script code to test if builtin has been overridden 17.255 - * 17.256 - * @return true if builtin number has not been overridden 17.257 - */ 17.258 - public static boolean isBuiltinNumber() { 17.259 - final Global instance = Global.instance(); 17.260 - return instance.number == instance.getBuiltinNumber(); 17.261 - } 17.262 - 17.263 - private ScriptFunction getBuiltinObject() { 17.264 - return builtinObject; 17.265 - } 17.266 - 17.267 - /** 17.268 - * Called from compiled script code to test if builtin has been overridden 17.269 - * 17.270 - * @return true if builtin object has not been overridden 17.271 - */ 17.272 - public static boolean isBuiltinObject() { 17.273 - final Global instance = Global.instance(); 17.274 - return instance.object == instance.getBuiltinObject(); 17.275 - } 17.276 - 17.277 - private ScriptObject getBuiltinPackages() { 17.278 - return builtinPackages; 17.279 - } 17.280 - 17.281 - /** 17.282 - * Called from compiled script code to test if builtin has been overridden 17.283 - * 17.284 - * @return true if builtin package has not been overridden 17.285 - */ 17.286 - public static boolean isBuiltinPackages() { 17.287 - final Global instance = Global.instance(); 17.288 - return instance.packages == instance.getBuiltinPackages(); 17.289 - } 17.290 - 17.291 private synchronized ScriptFunction getBuiltinRangeError() { 17.292 if (this.builtinRangeError == null) { 17.293 this.builtinRangeError = initErrorSubtype("RangeError", getErrorPrototype()); 17.294 @@ -2044,30 +1862,6 @@ 17.295 return builtinRangeError; 17.296 } 17.297 17.298 - /** 17.299 - * Called from compiled script code to test if builtin has been overridden 17.300 - * 17.301 - * @return true if builtin range error has not been overridden 17.302 - */ 17.303 - public static boolean isBuiltinRangeError() { 17.304 - final Global instance = Global.instance(); 17.305 - return instance.rangeError == LAZY_SENTINEL || instance.rangeError == instance.getBuiltinRangeError(); 17.306 - } 17.307 - 17.308 - private synchronized ScriptFunction getBuiltinReferenceError() { 17.309 - return builtinReferenceError; 17.310 - } 17.311 - 17.312 - /** 17.313 - * Called from compiled script code to test if builtin has been overridden 17.314 - * 17.315 - * @return true if builtin reference error has not been overridden 17.316 - */ 17.317 - public static boolean isBuiltinReferenceError() { 17.318 - final Global instance = Global.instance(); 17.319 - return instance.referenceError == instance.getBuiltinReferenceError(); 17.320 - } 17.321 - 17.322 private synchronized ScriptFunction getBuiltinRegExp() { 17.323 if (this.builtinRegExp == null) { 17.324 this.builtinRegExp = initConstructorAndSwitchPoint("RegExp", ScriptFunction.class); 17.325 @@ -2081,58 +1875,6 @@ 17.326 return builtinRegExp; 17.327 } 17.328 17.329 - /** 17.330 - * Called from compiled script code to test if builtin has been overridden 17.331 - * 17.332 - * @return true if builtin regexp has not been overridden 17.333 - */ 17.334 - public static boolean isBuiltinRegExp() { 17.335 - final Global instance = Global.instance(); 17.336 - return instance.regexp == LAZY_SENTINEL || instance.regexp == instance.getBuiltinRegExp(); 17.337 - } 17.338 - 17.339 - private ScriptFunction getBuiltinString() { 17.340 - return builtinString; 17.341 - } 17.342 - 17.343 - /** 17.344 - * Called from compiled script code to test if builtin has been overridden 17.345 - * 17.346 - * @return true if builtin Java has not been overridden 17.347 - */ 17.348 - public static boolean isBuiltinString() { 17.349 - final Global instance = Global.instance(); 17.350 - return instance.string == instance.getBuiltinString(); 17.351 - } 17.352 - 17.353 - private ScriptFunction getBuiltinSyntaxError() { 17.354 - return builtinSyntaxError; 17.355 - } 17.356 - 17.357 - /** 17.358 - * Called from compiled script code to test if builtin has been overridden 17.359 - * 17.360 - * @return true if builtin syntax error has not been overridden 17.361 - */ 17.362 - public static boolean isBuiltinSyntaxError() { 17.363 - final Global instance = Global.instance(); 17.364 - return instance.syntaxError == instance.getBuiltinSyntaxError(); 17.365 - } 17.366 - 17.367 - private ScriptFunction getBuiltinTypeError() { 17.368 - return builtinTypeError; 17.369 - } 17.370 - 17.371 - /** 17.372 - * Called from compiled script code to test if builtin has been overridden 17.373 - * 17.374 - * @return true if builtin type error has not been overridden 17.375 - */ 17.376 - public static boolean isBuiltinTypeError() { 17.377 - final Global instance = Global.instance(); 17.378 - return instance.typeError == instance.getBuiltinTypeError(); 17.379 - } 17.380 - 17.381 private synchronized ScriptFunction getBuiltinURIError() { 17.382 if (this.builtinURIError == null) { 17.383 this.builtinURIError = initErrorSubtype("URIError", getErrorPrototype()); 17.384 @@ -2140,16 +1882,6 @@ 17.385 return this.builtinURIError; 17.386 } 17.387 17.388 - /** 17.389 - * Called from compiled script code to test if builtin has been overridden 17.390 - * 17.391 - * @return true if builtin URI error has not been overridden 17.392 - */ 17.393 - public static boolean isBuiltinURIError() { 17.394 - final Global instance = Global.instance(); 17.395 - return instance.uriError == LAZY_SENTINEL || instance.uriError == instance.getBuiltinURIError(); 17.396 - } 17.397 - 17.398 @Override 17.399 public String getClassName() { 17.400 return "global"; 17.401 @@ -2288,7 +2020,7 @@ 17.402 * @return true if the value is a placeholder, false otherwise. 17.403 */ 17.404 public static boolean isLocationPropertyPlaceholder(final Object placeholder) { 17.405 - return placeholder == LOCATION_PROPERTY_PLACEHOLDER; 17.406 + return placeholder == LAZY_SENTINEL; 17.407 } 17.408 17.409 /** 17.410 @@ -2386,17 +2118,18 @@ 17.411 } 17.412 } 17.413 17.414 + final boolean extensible = isExtensible(); 17.415 for (final jdk.nashorn.internal.runtime.Property property : properties) { 17.416 if (property.isLexicalBinding()) { 17.417 assert lexScope != null; 17.418 - lexicalMap = lexScope.addBoundProperty(lexicalMap, source, property); 17.419 + lexicalMap = lexScope.addBoundProperty(lexicalMap, source, property, true); 17.420 17.421 if (ownMap.findProperty(property.getKey()) != null) { 17.422 // If property exists in the global object invalidate any global constant call sites. 17.423 invalidateGlobalConstant(property.getKey()); 17.424 } 17.425 } else { 17.426 - ownMap = addBoundProperty(ownMap, source, property); 17.427 + ownMap = addBoundProperty(ownMap, source, property, extensible); 17.428 } 17.429 } 17.430 17.431 @@ -2999,9 +2732,9 @@ 17.432 } 17.433 17.434 @Override 17.435 - protected PropertyMap addBoundProperty(final PropertyMap propMap, final ScriptObject source, final jdk.nashorn.internal.runtime.Property property) { 17.436 + protected PropertyMap addBoundProperty(final PropertyMap propMap, final ScriptObject source, final jdk.nashorn.internal.runtime.Property property, final boolean extensible) { 17.437 // We override this method just to make it callable by Global 17.438 - return super.addBoundProperty(propMap, source, property); 17.439 + return super.addBoundProperty(propMap, source, property, extensible); 17.440 } 17.441 17.442 private static GuardedInvocation filterInvocation(final GuardedInvocation invocation) {
18.1 --- a/src/jdk/nashorn/internal/parser/Lexer.java Fri Aug 07 11:55:46 2015 -0700 18.2 +++ b/src/jdk/nashorn/internal/parser/Lexer.java Tue Aug 11 12:49:01 2015 -0700 18.3 @@ -1640,9 +1640,9 @@ 18.4 //and new Color(float, float, float) will get ambiguous for cases like 18.5 //new Color(1.0, 1.5, 1.5) if we don't respect the decimal point. 18.6 //yet we don't want e.g. 1e6 to be a double unnecessarily 18.7 - if (JSType.isRepresentableAsInt(value) && !JSType.isNegativeZero(value)) { 18.8 + if (JSType.isStrictlyRepresentableAsInt(value)) { 18.9 return (int)value; 18.10 - } else if (JSType.isRepresentableAsLong(value) && !JSType.isNegativeZero(value)) { 18.11 + } else if (JSType.isStrictlyRepresentableAsLong(value)) { 18.12 return (long)value; 18.13 } 18.14 return value;
19.1 --- a/src/jdk/nashorn/internal/parser/Parser.java Fri Aug 07 11:55:46 2015 -0700 19.2 +++ b/src/jdk/nashorn/internal/parser/Parser.java Tue Aug 11 12:49:01 2015 -0700 19.3 @@ -2720,6 +2720,11 @@ 19.4 } 19.5 19.6 if (isStatement) { 19.7 + if (isAnonymous) { 19.8 + appendStatement(new ExpressionStatement(functionLine, functionToken, finish, functionNode)); 19.9 + return functionNode; 19.10 + } 19.11 + 19.12 final int varFlags = (topLevel || !useBlockScope()) ? 0 : VarNode.IS_LET; 19.13 final VarNode varNode = new VarNode(functionLine, functionToken, finish, name, functionNode, varFlags); 19.14 if (topLevel) {
20.1 --- a/src/jdk/nashorn/internal/runtime/DebuggerSupport.java Fri Aug 07 11:55:46 2015 -0700 20.2 +++ b/src/jdk/nashorn/internal/runtime/DebuggerSupport.java Tue Aug 11 12:49:01 2015 -0700 20.3 @@ -3,18 +3,18 @@ 20.4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 20.5 * 20.6 * This code is free software; you can redistribute it and/or modify it 20.7 - * under the terms of the GNU General License version 2 only, as 20.8 + * under the terms of the GNU General Public License version 2 only, as 20.9 * published by the Free Software Foundation. Oracle designates this 20.10 * particular file as subject to the "Classpath" exception as provided 20.11 * by Oracle in the LICENSE file that accompanied this code. 20.12 * 20.13 * This code is distributed in the hope that it will be useful, but WITHOUT 20.14 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 20.15 - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General License 20.16 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 20.17 * version 2 for more details (a copy is included in the LICENSE file that 20.18 * accompanied this code). 20.19 * 20.20 - * You should have received a copy of the GNU General License version 20.21 + * You should have received a copy of the GNU General Public License version 20.22 * 2 along with this work; if not, write to the Free Software Foundation, 20.23 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20.24 *
21.1 --- a/src/jdk/nashorn/internal/runtime/FinalScriptFunctionData.java Fri Aug 07 11:55:46 2015 -0700 21.2 +++ b/src/jdk/nashorn/internal/runtime/FinalScriptFunctionData.java Tue Aug 11 12:49:01 2015 -0700 21.3 @@ -27,6 +27,7 @@ 21.4 21.5 import java.lang.invoke.MethodHandle; 21.6 import java.lang.invoke.MethodType; 21.7 +import java.util.Collection; 21.8 import java.util.List; 21.9 21.10 /** 21.11 @@ -72,11 +73,6 @@ 21.12 } 21.13 21.14 @Override 21.15 - boolean isRecompilable() { 21.16 - return false; 21.17 - } 21.18 - 21.19 - @Override 21.20 protected boolean needsCallee() { 21.21 final boolean needsCallee = code.getFirst().needsCallee(); 21.22 assert allNeedCallee(needsCallee); 21.23 @@ -93,6 +89,20 @@ 21.24 } 21.25 21.26 @Override 21.27 + CompiledFunction getBest(final MethodType callSiteType, final ScriptObject runtimeScope, final Collection<CompiledFunction> forbidden) { 21.28 + assert isValidCallSite(callSiteType) : callSiteType; 21.29 + 21.30 + CompiledFunction best = null; 21.31 + for (final CompiledFunction candidate: code) { 21.32 + if (!forbidden.contains(candidate) && candidate.betterThanFinal(best, callSiteType)) { 21.33 + best = candidate; 21.34 + } 21.35 + } 21.36 + 21.37 + return best; 21.38 + } 21.39 + 21.40 + @Override 21.41 MethodType getGenericType() { 21.42 // We need to ask the code for its generic type. We can't just rely on this function data's arity, as it's not 21.43 // actually correct for lots of built-ins. E.g. ECMAScript 5.1 section 15.5.3.2 prescribes that
22.1 --- a/src/jdk/nashorn/internal/runtime/JSONFunctions.java Fri Aug 07 11:55:46 2015 -0700 22.2 +++ b/src/jdk/nashorn/internal/runtime/JSONFunctions.java Tue Aug 11 12:49:01 2015 -0700 22.3 @@ -104,16 +104,28 @@ 22.4 final Object val = holder.get(name); 22.5 if (val instanceof ScriptObject) { 22.6 final ScriptObject valueObj = (ScriptObject)val; 22.7 - final Iterator<String> iter = valueObj.propertyIterator(); 22.8 + if (valueObj.isArray()) { 22.9 + final int length = JSType.toInteger(valueObj.getLength()); 22.10 + for (int i = 0; i < length; i++) { 22.11 + final String key = Integer.toString(i); 22.12 + final Object newElement = walk(valueObj, key, reviver); 22.13 22.14 - while (iter.hasNext()) { 22.15 - final String key = iter.next(); 22.16 - final Object newElement = walk(valueObj, key, reviver); 22.17 + if (newElement == ScriptRuntime.UNDEFINED) { 22.18 + valueObj.delete(i, false); 22.19 + } else { 22.20 + setPropertyValue(valueObj, key, newElement); 22.21 + } 22.22 + } 22.23 + } else { 22.24 + final String[] keys = valueObj.getOwnKeys(false); 22.25 + for (final String key : keys) { 22.26 + final Object newElement = walk(valueObj, key, reviver); 22.27 22.28 - if (newElement == ScriptRuntime.UNDEFINED) { 22.29 - valueObj.delete(key, false); 22.30 - } else { 22.31 - setPropertyValue(valueObj, key, newElement); 22.32 + if (newElement == ScriptRuntime.UNDEFINED) { 22.33 + valueObj.delete(key, false); 22.34 + } else { 22.35 + setPropertyValue(valueObj, key, newElement); 22.36 + } 22.37 } 22.38 } 22.39 }
23.1 --- a/src/jdk/nashorn/internal/runtime/JSType.java Fri Aug 07 11:55:46 2015 -0700 23.2 +++ b/src/jdk/nashorn/internal/runtime/JSType.java Tue Aug 11 12:49:01 2015 -0700 23.3 @@ -377,8 +377,8 @@ 23.4 } 23.5 23.6 /** 23.7 - * Returns true if double number can be represented as an int. Note that it returns true for negative zero. If you 23.8 - * need to exclude negative zero, combine this check with {@link #isNegativeZero(double)}. 23.9 + * Returns true if double number can be represented as an int. Note that it returns true for negative 23.10 + * zero. If you need to exclude negative zero, use {@link #isStrictlyRepresentableAsInt(double)}. 23.11 * 23.12 * @param number a double to inspect 23.13 * 23.14 @@ -389,6 +389,18 @@ 23.15 } 23.16 23.17 /** 23.18 + * Returns true if double number can be represented as an int. Note that it returns false for negative 23.19 + * zero. If you don't need to distinguish negative zero, use {@link #isRepresentableAsInt(double)}. 23.20 + * 23.21 + * @param number a double to inspect 23.22 + * 23.23 + * @return true for int representable doubles 23.24 + */ 23.25 + public static boolean isStrictlyRepresentableAsInt(final double number) { 23.26 + return isRepresentableAsInt(number) && isNotNegativeZero(number); 23.27 + } 23.28 + 23.29 + /** 23.30 * Returns true if Object can be represented as an int 23.31 * 23.32 * @param obj an object to inspect 23.33 @@ -403,8 +415,8 @@ 23.34 } 23.35 23.36 /** 23.37 - * Returns true if double number can be represented as a long. Note that it returns true for negative zero. If you 23.38 - * need to exclude negative zero, combine this check with {@link #isNegativeZero(double)}. 23.39 + * Returns true if double number can be represented as a long. Note that it returns true for negative 23.40 + * zero. If you need to exclude negative zero, use {@link #isStrictlyRepresentableAsLong(double)}. 23.41 * 23.42 * @param number a double to inspect 23.43 * @return true for long representable doubles 23.44 @@ -414,6 +426,18 @@ 23.45 } 23.46 23.47 /** 23.48 + * Returns true if double number can be represented as a long. Note that it returns false for negative 23.49 + * zero. If you don't need to distinguish negative zero, use {@link #isRepresentableAsLong(double)}. 23.50 + * 23.51 + * @param number a double to inspect 23.52 + * 23.53 + * @return true for long representable doubles 23.54 + */ 23.55 + public static boolean isStrictlyRepresentableAsLong(final double number) { 23.56 + return isRepresentableAsLong(number) && isNotNegativeZero(number); 23.57 + } 23.58 + 23.59 + /** 23.60 * Returns true if Object can be represented as a long 23.61 * 23.62 * @param obj an object to inspect 23.63 @@ -428,12 +452,12 @@ 23.64 } 23.65 23.66 /** 23.67 - * Returns true if the number is the negative zero ({@code -0.0d}). 23.68 + * Returns true if the number is not the negative zero ({@code -0.0d}). 23.69 * @param number the number to test 23.70 - * @return true if it is the negative zero, false otherwise. 23.71 + * @return true if it is not the negative zero, false otherwise. 23.72 */ 23.73 - public static boolean isNegativeZero(final double number) { 23.74 - return number == 0.0d && Double.doubleToRawLongBits(number) == 0x8000000000000000L; 23.75 + private static boolean isNotNegativeZero(final double number) { 23.76 + return Double.doubleToRawLongBits(number) != 0x8000000000000000L; 23.77 } 23.78 23.79 /**
24.1 --- a/src/jdk/nashorn/internal/runtime/OptimisticReturnFilters.java Fri Aug 07 11:55:46 2015 -0700 24.2 +++ b/src/jdk/nashorn/internal/runtime/OptimisticReturnFilters.java Tue Aug 11 12:49:01 2015 -0700 24.3 @@ -184,7 +184,7 @@ 24.4 24.5 @SuppressWarnings("unused") 24.6 private static int ensureInt(final double arg, final int programPoint) { 24.7 - if (JSType.isRepresentableAsInt(arg) && !JSType.isNegativeZero(arg)) { 24.8 + if (JSType.isStrictlyRepresentableAsInt(arg)) { 24.9 return (int)arg; 24.10 } 24.11 throw new UnwarrantedOptimismException(arg, programPoint); 24.12 @@ -206,7 +206,7 @@ 24.13 // Long into the exception. 24.14 if (isPrimitiveNumberWrapper(arg)) { 24.15 final double d = ((Number)arg).doubleValue(); 24.16 - if (JSType.isRepresentableAsInt(d) && !JSType.isNegativeZero(d)) { 24.17 + if (JSType.isStrictlyRepresentableAsInt(d)) { 24.18 return (int)d; 24.19 } 24.20 } 24.21 @@ -239,7 +239,7 @@ 24.22 } 24.23 24.24 private static long ensureLong(final double arg, final int programPoint) { 24.25 - if (JSType.isRepresentableAsLong(arg) && !JSType.isNegativeZero(arg)) { 24.26 + if (JSType.isStrictlyRepresentableAsLong(arg)) { 24.27 return (long)arg; 24.28 } 24.29 throw new UnwarrantedOptimismException(arg, programPoint);
25.1 --- a/src/jdk/nashorn/internal/runtime/Property.java Fri Aug 07 11:55:46 2015 -0700 25.2 +++ b/src/jdk/nashorn/internal/runtime/Property.java Tue Aug 11 12:49:01 2015 -0700 25.3 @@ -562,8 +562,8 @@ 25.4 25.5 @Override 25.6 public int hashCode() { 25.7 - final Class<?> type = getLocalType(); 25.8 - return Objects.hashCode(this.key) ^ flags ^ getSlot() ^ (type == null ? 0 : type.hashCode()); 25.9 + final Class<?> t = getLocalType(); 25.10 + return Objects.hashCode(this.key) ^ flags ^ getSlot() ^ (t == null ? 0 : t.hashCode()); 25.11 } 25.12 25.13 @Override 25.14 @@ -588,7 +588,7 @@ 25.15 getKey().equals(otherProperty.getKey()); 25.16 } 25.17 25.18 - private static final String type(final Class<?> type) { 25.19 + private static String type(final Class<?> type) { 25.20 if (type == null) { 25.21 return "undef"; 25.22 } else if (type == int.class) { 25.23 @@ -608,8 +608,8 @@ 25.24 */ 25.25 public final String toStringShort() { 25.26 final StringBuilder sb = new StringBuilder(); 25.27 - final Class<?> type = getLocalType(); 25.28 - sb.append(getKey()).append(" (").append(type(type)).append(')'); 25.29 + final Class<?> t = getLocalType(); 25.30 + sb.append(getKey()).append(" (").append(type(t)).append(')'); 25.31 return sb.toString(); 25.32 } 25.33 25.34 @@ -625,7 +625,7 @@ 25.35 @Override 25.36 public String toString() { 25.37 final StringBuilder sb = new StringBuilder(); 25.38 - final Class<?> type = getLocalType(); 25.39 + final Class<?> t = getLocalType(); 25.40 25.41 sb.append(indent(getKey(), 20)). 25.42 append(" id="). 25.43 @@ -635,7 +635,7 @@ 25.44 append(") "). 25.45 append(getClass().getSimpleName()). 25.46 append(" {"). 25.47 - append(indent(type(type), 5)). 25.48 + append(indent(type(t), 5)). 25.49 append('}'); 25.50 25.51 if (slot != -1) {
26.1 --- a/src/jdk/nashorn/internal/runtime/PropertyMap.java Fri Aug 07 11:55:46 2015 -0700 26.2 +++ b/src/jdk/nashorn/internal/runtime/PropertyMap.java Tue Aug 11 12:49:01 2015 -0700 26.3 @@ -990,10 +990,10 @@ 26.4 for (final Property p : map0.getProperties()) { 26.5 final Property p2 = map1.findProperty(p.getKey()); 26.6 if (p2 == null) { 26.7 - sb.append("FIRST ONLY : [" + p + "]"); 26.8 + sb.append("FIRST ONLY : [").append(p).append("]"); 26.9 found = true; 26.10 } else if (p2 != p) { 26.11 - sb.append("DIFFERENT : [" + p + "] != [" + p2 + "]"); 26.12 + sb.append("DIFFERENT : [").append(p).append("] != [").append(p2).append("]"); 26.13 found = true; 26.14 } 26.15 } 26.16 @@ -1001,7 +1001,7 @@ 26.17 for (final Property p2 : map1.getProperties()) { 26.18 final Property p1 = map0.findProperty(p2.getKey()); 26.19 if (p1 == null) { 26.20 - sb.append("SECOND ONLY: [" + p2 + "]"); 26.21 + sb.append("SECOND ONLY: [").append(p2).append("]"); 26.22 found = true; 26.23 } 26.24 }
27.1 --- a/src/jdk/nashorn/internal/runtime/RecompilableScriptFunctionData.java Fri Aug 07 11:55:46 2015 -0700 27.2 +++ b/src/jdk/nashorn/internal/runtime/RecompilableScriptFunctionData.java Tue Aug 11 12:49:01 2015 -0700 27.3 @@ -617,6 +617,7 @@ 27.4 private CompiledFunction addCode(final MethodHandle target, final Map<Integer, Type> invalidatedProgramPoints, 27.5 final MethodType callSiteType, final int fnFlags) { 27.6 final CompiledFunction cfn = new CompiledFunction(target, this, invalidatedProgramPoints, callSiteType, fnFlags); 27.7 + assert noDuplicateCode(cfn) : "duplicate code"; 27.8 code.add(cfn); 27.9 return cfn; 27.10 } 27.11 @@ -683,14 +684,17 @@ 27.12 27.13 @Override 27.14 synchronized CompiledFunction getBest(final MethodType callSiteType, final ScriptObject runtimeScope, final Collection<CompiledFunction> forbidden) { 27.15 - CompiledFunction existingBest = super.getBest(callSiteType, runtimeScope, forbidden); 27.16 + assert isValidCallSite(callSiteType) : callSiteType; 27.17 + 27.18 + CompiledFunction existingBest = pickFunction(callSiteType, false); 27.19 + if (existingBest == null) { 27.20 + existingBest = pickFunction(callSiteType, true); // try vararg last 27.21 + } 27.22 if (existingBest == null) { 27.23 existingBest = addCode(compileTypeSpecialization(callSiteType, runtimeScope, true), callSiteType); 27.24 } 27.25 27.26 assert existingBest != null; 27.27 - //we are calling a vararg method with real args 27.28 - boolean varArgWithRealArgs = existingBest.isVarArg() && !CompiledFunction.isVarArgsType(callSiteType); 27.29 27.30 //if the best one is an apply to call, it has to match the callsite exactly 27.31 //or we need to regenerate 27.32 @@ -699,27 +703,18 @@ 27.33 if (best != null) { 27.34 return best; 27.35 } 27.36 - varArgWithRealArgs = true; 27.37 - } 27.38 27.39 - if (varArgWithRealArgs) { 27.40 // special case: we had an apply to call, but we failed to make it fit. 27.41 // Try to generate a specialized one for this callsite. It may 27.42 // be another apply to call specialization, or it may not, but whatever 27.43 // it is, it is a specialization that is guaranteed to fit 27.44 - final FunctionInitializer fnInit = compileTypeSpecialization(callSiteType, runtimeScope, false); 27.45 - existingBest = addCode(fnInit, callSiteType); 27.46 + existingBest = addCode(compileTypeSpecialization(callSiteType, runtimeScope, false), callSiteType); 27.47 } 27.48 27.49 return existingBest; 27.50 } 27.51 27.52 @Override 27.53 - boolean isRecompilable() { 27.54 - return true; 27.55 - } 27.56 - 27.57 - @Override 27.58 public boolean needsCallee() { 27.59 return getFunctionFlag(FunctionNode.NEEDS_CALLEE); 27.60 } 27.61 @@ -827,6 +822,16 @@ 27.62 return newFn; 27.63 } 27.64 27.65 + // Make sure code does not contain a compiled function with the same signature as compiledFunction 27.66 + private boolean noDuplicateCode(final CompiledFunction compiledFunction) { 27.67 + for (final CompiledFunction cf : code) { 27.68 + if (cf.type().equals(compiledFunction.type())) { 27.69 + return false; 27.70 + } 27.71 + } 27.72 + return true; 27.73 + } 27.74 + 27.75 private void readObject(final java.io.ObjectInputStream in) throws IOException, ClassNotFoundException { 27.76 in.defaultReadObject(); 27.77 createLogger();
28.1 --- a/src/jdk/nashorn/internal/runtime/ScriptFunctionData.java Fri Aug 07 11:55:46 2015 -0700 28.2 +++ b/src/jdk/nashorn/internal/runtime/ScriptFunctionData.java Tue Aug 11 12:49:01 2015 -0700 28.3 @@ -359,31 +359,13 @@ 28.4 * scope is not known, but that might cause compilation of code that will need more deoptimization passes. 28.5 * @return the best function for the specified call site type. 28.6 */ 28.7 - CompiledFunction getBest(final MethodType callSiteType, final ScriptObject runtimeScope, final Collection<CompiledFunction> forbidden) { 28.8 - assert callSiteType.parameterCount() >= 2 : callSiteType; // Must have at least (callee, this) 28.9 - assert callSiteType.parameterType(0).isAssignableFrom(ScriptFunction.class) : callSiteType; // Callee must be assignable from script function 28.10 + abstract CompiledFunction getBest(final MethodType callSiteType, final ScriptObject runtimeScope, final Collection<CompiledFunction> forbidden); 28.11 28.12 - if (isRecompilable()) { 28.13 - final CompiledFunction candidate = pickFunction(callSiteType, false); 28.14 - if (candidate != null) { 28.15 - return candidate; 28.16 - } 28.17 - return pickFunction(callSiteType, true); //try vararg last 28.18 - } 28.19 - 28.20 - CompiledFunction best = null; 28.21 - for (final CompiledFunction candidate: code) { 28.22 - if (!forbidden.contains(candidate) && candidate.betterThanFinal(best, callSiteType)) { 28.23 - best = candidate; 28.24 - } 28.25 - } 28.26 - 28.27 - return best; 28.28 + boolean isValidCallSite(final MethodType callSiteType) { 28.29 + return callSiteType.parameterCount() >= 2 && // Must have at least (callee, this) 28.30 + callSiteType.parameterType(0).isAssignableFrom(ScriptFunction.class); // Callee must be assignable from script function 28.31 } 28.32 28.33 - 28.34 - abstract boolean isRecompilable(); 28.35 - 28.36 CompiledFunction getGeneric(final ScriptObject runtimeScope) { 28.37 return getBest(getGenericType(), runtimeScope, CompiledFunction.NO_FUNCTIONS); 28.38 }
29.1 --- a/src/jdk/nashorn/internal/runtime/ScriptObject.java Fri Aug 07 11:55:46 2015 -0700 29.2 +++ b/src/jdk/nashorn/internal/runtime/ScriptObject.java Tue Aug 11 12:49:01 2015 -0700 29.3 @@ -287,9 +287,10 @@ 29.4 */ 29.5 public void addBoundProperties(final ScriptObject source, final Property[] properties) { 29.6 PropertyMap newMap = this.getMap(); 29.7 + final boolean extensible = newMap.isExtensible(); 29.8 29.9 for (final Property property : properties) { 29.10 - newMap = addBoundProperty(newMap, source, property); 29.11 + newMap = addBoundProperty(newMap, source, property, extensible); 29.12 } 29.13 29.14 this.setMap(newMap); 29.15 @@ -302,13 +303,18 @@ 29.16 * @param propMap the property map 29.17 * @param source the source object 29.18 * @param property the property to be added 29.19 + * @param extensible whether the current object is extensible or not 29.20 * @return the new property map 29.21 */ 29.22 - protected PropertyMap addBoundProperty(final PropertyMap propMap, final ScriptObject source, final Property property) { 29.23 + protected PropertyMap addBoundProperty(final PropertyMap propMap, final ScriptObject source, final Property property, final boolean extensible) { 29.24 PropertyMap newMap = propMap; 29.25 final String key = property.getKey(); 29.26 final Property oldProp = newMap.findProperty(key); 29.27 if (oldProp == null) { 29.28 + if (! extensible) { 29.29 + throw typeError("object.non.extensible", key, ScriptRuntime.safeToString(this)); 29.30 + } 29.31 + 29.32 if (property instanceof UserAccessorProperty) { 29.33 // Note: we copy accessor functions to this object which is semantically different from binding. 29.34 final UserAccessorProperty prop = this.newUserAccessors(key, property.getFlags(), property.getGetterFunction(source), property.getSetterFunction(source)); 29.35 @@ -337,11 +343,15 @@ 29.36 */ 29.37 public void addBoundProperties(final Object source, final AccessorProperty[] properties) { 29.38 PropertyMap newMap = this.getMap(); 29.39 + final boolean extensible = newMap.isExtensible(); 29.40 29.41 for (final AccessorProperty property : properties) { 29.42 final String key = property.getKey(); 29.43 29.44 if (newMap.findProperty(key) == null) { 29.45 + if (! extensible) { 29.46 + throw typeError("object.non.extensible", key, ScriptRuntime.safeToString(this)); 29.47 + } 29.48 newMap = newMap.addPropertyBind(property, source); 29.49 } 29.50 }
30.1 --- a/src/jdk/nashorn/internal/runtime/ScriptRuntime.java Fri Aug 07 11:55:46 2015 -0700 30.2 +++ b/src/jdk/nashorn/internal/runtime/ScriptRuntime.java Tue Aug 11 12:49:01 2015 -0700 30.3 @@ -685,6 +685,33 @@ 30.4 } 30.5 30.6 /** 30.7 + * ECMA 11.4.1 - delete operator, implementation for slow scopes 30.8 + * 30.9 + * This implementation of 'delete' walks the scope chain to find the scope that contains the 30.10 + * property to be deleted, then invokes delete on it. 30.11 + * 30.12 + * @param obj top scope object 30.13 + * @param property property to delete 30.14 + * @param strict are we in strict mode 30.15 + * 30.16 + * @return true if property was successfully found and deleted 30.17 + */ 30.18 + public static boolean SLOW_DELETE(final Object obj, final Object property, final Object strict) { 30.19 + if (obj instanceof ScriptObject) { 30.20 + ScriptObject sobj = (ScriptObject) obj; 30.21 + final String key = property.toString(); 30.22 + while (sobj != null && sobj.isScope()) { 30.23 + final FindProperty find = sobj.findProperty(key, false); 30.24 + if (find != null) { 30.25 + return sobj.delete(key, Boolean.TRUE.equals(strict)); 30.26 + } 30.27 + sobj = sobj.getProto(); 30.28 + } 30.29 + } 30.30 + return DELETE(obj, property, strict); 30.31 + } 30.32 + 30.33 + /** 30.34 * ECMA 11.4.1 - delete operator, special case 30.35 * 30.36 * This is 'delete' that always fails. We have to check strict mode and throw error.
31.1 --- a/src/jdk/nashorn/internal/runtime/Source.java Fri Aug 07 11:55:46 2015 -0700 31.2 +++ b/src/jdk/nashorn/internal/runtime/Source.java Tue Aug 11 12:49:01 2015 -0700 31.3 @@ -971,7 +971,7 @@ 31.4 return initLogger(Context.getContextTrusted()); 31.5 } 31.6 31.7 - private File dumpFile(final String dir) { 31.8 + private File dumpFile(final File dirFile) { 31.9 final URL u = getURL(); 31.10 final StringBuilder buf = new StringBuilder(); 31.11 // make it unique by prefixing current date & time 31.12 @@ -986,11 +986,17 @@ 31.13 buf.append(getName()); 31.14 } 31.15 31.16 - return new File(dir, buf.toString()); 31.17 + return new File(dirFile, buf.toString()); 31.18 } 31.19 31.20 void dump(final String dir) { 31.21 - final File file = dumpFile(dir); 31.22 + final File dirFile = new File(dir); 31.23 + final File file = dumpFile(dirFile); 31.24 + if (!dirFile.exists() && !dirFile.mkdirs()) { 31.25 + debug("Skipping source dump for " + name); 31.26 + return; 31.27 + } 31.28 + 31.29 try (final FileOutputStream fos = new FileOutputStream(file)) { 31.30 final PrintWriter pw = new PrintWriter(fos); 31.31 pw.print(data.toString());
32.1 --- a/src/jdk/nashorn/internal/runtime/Undefined.java Fri Aug 07 11:55:46 2015 -0700 32.2 +++ b/src/jdk/nashorn/internal/runtime/Undefined.java Tue Aug 11 12:49:01 2015 -0700 32.3 @@ -96,8 +96,12 @@ 32.4 32.5 switch (operator) { 32.6 case "new": 32.7 - case "call": 32.8 - throw lookupTypeError("cant.call.undefined", desc); 32.9 + case "call": { 32.10 + final String name = desc.getNameTokenCount() > 2? desc.getNameToken(2) : null; 32.11 + final String msg = name != null? "cant.call.undefined.arg" : "cant.call.undefined"; 32.12 + throw typeError(msg, name); 32.13 + } 32.14 + 32.15 case "callMethod": 32.16 throw lookupTypeError("cant.read.property.of.undefined", desc); 32.17 // NOTE: we support getElem and setItem as JavaScript doesn't distinguish items from properties. Nashorn itself 32.18 @@ -125,7 +129,8 @@ 32.19 } 32.20 32.21 private static ECMAException lookupTypeError(final String msg, final CallSiteDescriptor desc) { 32.22 - return typeError(msg, desc.getNameTokenCount() > 2 ? desc.getNameToken(2) : null); 32.23 + final String name = desc.getNameToken(2); 32.24 + return typeError(msg, name != null && !name.isEmpty()? name : null); 32.25 } 32.26 32.27 private static final MethodHandle GET_METHOD = findOwnMH("get", Object.class, Object.class);
33.1 --- a/src/jdk/nashorn/internal/runtime/linker/NashornCallSiteDescriptor.java Fri Aug 07 11:55:46 2015 -0700 33.2 +++ b/src/jdk/nashorn/internal/runtime/linker/NashornCallSiteDescriptor.java Tue Aug 11 12:49:01 2015 -0700 33.3 @@ -150,7 +150,7 @@ 33.4 public static NashornCallSiteDescriptor get(final MethodHandles.Lookup lookup, final String name, 33.5 final MethodType methodType, final int flags) { 33.6 final String[] tokenizedName = CallSiteDescriptorFactory.tokenizeName(name); 33.7 - assert tokenizedName.length == 2 || tokenizedName.length == 3; 33.8 + assert tokenizedName.length >= 2; 33.9 assert "dyn".equals(tokenizedName[0]); 33.10 assert tokenizedName[1] != null; 33.11 // TODO: see if we can move mangling/unmangling into Dynalink
34.1 --- a/src/jdk/nashorn/internal/runtime/logging/DebugLogger.java Fri Aug 07 11:55:46 2015 -0700 34.2 +++ b/src/jdk/nashorn/internal/runtime/logging/DebugLogger.java Tue Aug 11 12:49:01 2015 -0700 34.3 @@ -99,10 +99,10 @@ 34.4 final StringBuilder sb = new StringBuilder(); 34.5 34.6 sb.append('[') 34.7 - .append(record.getLoggerName()) 34.8 - .append("] ") 34.9 - .append(record.getMessage()) 34.10 - .append('\n'); 34.11 + .append(record.getLoggerName()) 34.12 + .append("] ") 34.13 + .append(record.getMessage()) 34.14 + .append('\n'); 34.15 34.16 return sb.toString(); 34.17 } 34.18 @@ -194,7 +194,7 @@ 34.19 */ 34.20 public void indent(final int pos) { 34.21 if (isEnabled) { 34.22 - indent += pos * INDENT_SPACE; 34.23 + indent += pos * INDENT_SPACE; 34.24 } 34.25 } 34.26 34.27 @@ -227,57 +227,14 @@ 34.28 } 34.29 34.30 /** 34.31 - * Check if the logger is above the level of detail given 34.32 + * Check if the event of given level will be logged. 34.33 * @see java.util.logging.Level 34.34 * 34.35 - * The higher the level, the more severe the warning 34.36 - * 34.37 * @param level logging level 34.38 - * @return true if level is above the given one 34.39 + * @return true if event of given level will be logged. 34.40 */ 34.41 - public boolean levelCoarserThan(final Level level) { 34.42 - return getLevel().intValue() > level.intValue(); 34.43 - } 34.44 - 34.45 - /** 34.46 - * Check if the logger is above or equal to the level 34.47 - * of detail given 34.48 - * @see java.util.logging.Level 34.49 - * 34.50 - * The higher the level, the more severe the warning 34.51 - * 34.52 - * @param level logging level 34.53 - * @return true if level is above the given one 34.54 - */ 34.55 - public boolean levelCoarserThanOrEqual(final Level level) { 34.56 - return getLevel().intValue() >= level.intValue(); 34.57 - } 34.58 - 34.59 - /** 34.60 - * Check if the logger is below the level of detail given 34.61 - * @see java.util.logging.Level 34.62 - * 34.63 - * The higher the level, the more severe the warning 34.64 - * 34.65 - * @param level logging level 34.66 - * @return true if level is above the given one 34.67 - */ 34.68 - public boolean levelFinerThan(final Level level) { 34.69 - return getLevel().intValue() < level.intValue(); 34.70 - } 34.71 - 34.72 - /** 34.73 - * Check if the logger is below or equal to the level 34.74 - * of detail given 34.75 - * @see java.util.logging.Level 34.76 - * 34.77 - * The higher the level, the more severe the warning 34.78 - * 34.79 - * @param level logging level 34.80 - * @return true if level is above the given one 34.81 - */ 34.82 - public boolean levelFinerThanOrEqual(final Level level) { 34.83 - return getLevel().intValue() <= level.intValue(); 34.84 + public boolean isLoggable(final Level level) { 34.85 + return logger.isLoggable(level); 34.86 } 34.87 34.88 /** 34.89 @@ -566,7 +523,7 @@ 34.90 * @param str string to log 34.91 */ 34.92 public void log(final Level level, final String str) { 34.93 - if (isEnabled && !isQuiet) { 34.94 + if (isEnabled && !isQuiet && logger.isLoggable(level)) { 34.95 final StringBuilder sb = new StringBuilder(); 34.96 for (int i = 0 ; i < indent ; i++) { 34.97 sb.append(' '); 34.98 @@ -584,7 +541,7 @@ 34.99 * @param objs objects for which to invoke toString and concatenate to log 34.100 */ 34.101 public void log(final Level level, final Object... objs) { 34.102 - if (isEnabled && !isQuiet) { 34.103 + if (isEnabled && !isQuiet && logger.isLoggable(level)) { 34.104 final StringBuilder sb = new StringBuilder(); 34.105 for (final Object obj : objs) { 34.106 sb.append(obj);
35.1 --- a/src/jdk/nashorn/internal/runtime/resources/Messages.properties Fri Aug 07 11:55:46 2015 -0700 35.2 +++ b/src/jdk/nashorn/internal/runtime/resources/Messages.properties Tue Aug 11 12:49:01 2015 -0700 35.3 @@ -87,6 +87,7 @@ 35.4 35.5 # operations not permitted on undefined 35.6 type.error.cant.call.undefined=Cannot call undefined 35.7 +type.error.cant.call.undefined.arg=Cannot call "{0}" that has undefined value 35.8 type.error.cant.read.property.of.undefined=Cannot read property "{0}" from undefined 35.9 type.error.cant.set.property.of.undefined=Cannot set property "{0}" of undefined 35.10 type.error.cant.delete.property.of.undefined=Cannot delete property "{0}" of undefined
36.1 --- a/test/script/basic/JDK-8007456.js Fri Aug 07 11:55:46 2015 -0700 36.2 +++ b/test/script/basic/JDK-8007456.js Tue Aug 11 12:49:01 2015 -0700 36.3 @@ -1,21 +1,21 @@ 36.4 /* 36.5 - * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved. 36.6 + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. 36.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 36.8 - * 36.9 + * 36.10 * This code is free software; you can redistribute it and/or modify it 36.11 * under the terms of the GNU General Public License version 2 only, as 36.12 * published by the Free Software Foundation. 36.13 - * 36.14 + * 36.15 * This code is distributed in the hope that it will be useful, but WITHOUT 36.16 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 36.17 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 36.18 * version 2 for more details (a copy is included in the LICENSE file that 36.19 * accompanied this code). 36.20 - * 36.21 + * 36.22 * You should have received a copy of the GNU General Public License version 36.23 * 2 along with this work; if not, write to the Free Software Foundation, 36.24 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 36.25 - * 36.26 + * 36.27 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 36.28 * or visit www.oracle.com if you need additional information or have any 36.29 * questions.
37.1 --- a/test/script/basic/JDK-8026016.js.EXPECTED Fri Aug 07 11:55:46 2015 -0700 37.2 +++ b/test/script/basic/JDK-8026016.js.EXPECTED Tue Aug 11 12:49:01 2015 -0700 37.3 @@ -1,182 +1,182 @@ 37.4 -no such property _ 37.5 -TypeError: Cannot call undefined 37.6 -no such property _ 37.7 -TypeError: Cannot call undefined 37.8 -no such property _ 37.9 -TypeError: Cannot call undefined 37.10 -no such property _ 37.11 -TypeError: Cannot call undefined 37.12 -no such property _ 37.13 -TypeError: Cannot call undefined 37.14 -no such property _ 37.15 -TypeError: Cannot call undefined 37.16 -no such property _ 37.17 -TypeError: Cannot call undefined 37.18 -no such property _ 37.19 -TypeError: Cannot call undefined 37.20 -no such property _ 37.21 -TypeError: Cannot call undefined 37.22 -no such property _ 37.23 -TypeError: Cannot call undefined 37.24 -no such property _ 37.25 -TypeError: Cannot call undefined 37.26 -no such property _ 37.27 -TypeError: Cannot call undefined 37.28 -no such property _ 37.29 -TypeError: Cannot call undefined 37.30 -no such property _ 37.31 -TypeError: Cannot call undefined 37.32 -no such property _ 37.33 -TypeError: Cannot call undefined 37.34 -no such property _ 37.35 -TypeError: Cannot call undefined 37.36 -no such property _ 37.37 -TypeError: Cannot call undefined 37.38 -no such property _ 37.39 -TypeError: Cannot call undefined 37.40 -no such property _ 37.41 -TypeError: Cannot call undefined 37.42 -no such property _ 37.43 -TypeError: Cannot call undefined 37.44 -no such property _ 37.45 -TypeError: Cannot call undefined 37.46 -no such property _ 37.47 -TypeError: Cannot call undefined 37.48 -no such property _ 37.49 -TypeError: Cannot call undefined 37.50 -no such property _ 37.51 -TypeError: Cannot call undefined 37.52 -no such property _ 37.53 -TypeError: Cannot call undefined 37.54 -no such property _ 37.55 -TypeError: Cannot call undefined 37.56 -no such property _ 37.57 -no such property _ 37.58 -no such property _ 37.59 -no such property _ 37.60 -no such property _ 37.61 -no such property _ 37.62 -no such property _ 37.63 -no such property _ 37.64 -no such property _ 37.65 -no such property _ 37.66 -no such property _ 37.67 -no such property _ 37.68 -no such property _ 37.69 -no such property _ 37.70 -no such property _ 37.71 -no such property _ 37.72 -no such property _ 37.73 -no such property _ 37.74 -no such property _ 37.75 -no such property _ 37.76 -no such property _ 37.77 -no such property _ 37.78 -no such property _ 37.79 -no such property _ 37.80 -no such property _ 37.81 -no such property _ 37.82 -no such method _,0 37.83 -no such method _,1 37.84 -no such method _,2 37.85 -no such method _,3 37.86 -no such method _,4 37.87 -no such method _,5 37.88 -no such method _,6 37.89 -no such method _,7 37.90 -no such method _,8 37.91 -no such method _,9 37.92 -no such method _,10 37.93 -no such method _,11 37.94 -no such method _,12 37.95 -no such method _,13 37.96 -no such method _,14 37.97 -no such method _,15 37.98 -no such method _,16 37.99 -no such method _,17 37.100 -no such method _,18 37.101 -no such method _,19 37.102 -no such method _,20 37.103 -no such method _,21 37.104 -no such method _,22 37.105 -no such method _,23 37.106 -no such method _,24 37.107 -no such method _,25 37.108 -no such property _ 37.109 -no such property _ 37.110 -no such property _ 37.111 -no such property _ 37.112 -no such property _ 37.113 -no such property _ 37.114 -no such property _ 37.115 -no such property _ 37.116 -no such property _ 37.117 -no such property _ 37.118 -no such property _ 37.119 -no such property _ 37.120 -no such property _ 37.121 -no such property _ 37.122 -no such property _ 37.123 -no such property _ 37.124 -no such property _ 37.125 -no such property _ 37.126 -no such property _ 37.127 -no such property _ 37.128 -no such property _ 37.129 -no such property _ 37.130 -no such property _ 37.131 -no such property _ 37.132 -no such property _ 37.133 -no such property _ 37.134 -TypeError: Cannot call undefined 37.135 -TypeError: Cannot call undefined 37.136 -TypeError: Cannot call undefined 37.137 -TypeError: Cannot call undefined 37.138 -TypeError: Cannot call undefined 37.139 -TypeError: Cannot call undefined 37.140 -TypeError: Cannot call undefined 37.141 -TypeError: Cannot call undefined 37.142 -TypeError: Cannot call undefined 37.143 -TypeError: Cannot call undefined 37.144 -TypeError: Cannot call undefined 37.145 -TypeError: Cannot call undefined 37.146 -TypeError: Cannot call undefined 37.147 -TypeError: Cannot call undefined 37.148 -TypeError: Cannot call undefined 37.149 -TypeError: Cannot call undefined 37.150 -TypeError: Cannot call undefined 37.151 -TypeError: Cannot call undefined 37.152 -TypeError: Cannot call undefined 37.153 -TypeError: Cannot call undefined 37.154 -TypeError: Cannot call undefined 37.155 -TypeError: Cannot call undefined 37.156 -TypeError: Cannot call undefined 37.157 -TypeError: Cannot call undefined 37.158 -TypeError: Cannot call undefined 37.159 -TypeError: Cannot call undefined 37.160 -no such property _ 37.161 -no such property _ 37.162 -no such property _ 37.163 -no such property _ 37.164 -no such property _ 37.165 -no such property _ 37.166 -no such property _ 37.167 -no such property _ 37.168 -no such property _ 37.169 -no such property _ 37.170 -no such property _ 37.171 -no such property _ 37.172 -no such property _ 37.173 -no such property _ 37.174 -no such property _ 37.175 -no such property _ 37.176 -no such property _ 37.177 -no such property _ 37.178 -no such property _ 37.179 -no such property _ 37.180 -no such property _ 37.181 -no such property _ 37.182 -no such property _ 37.183 -no such property _ 37.184 -no such property _ 37.185 -no such property _ 37.186 +no such property _ 37.187 +TypeError: Cannot call "_" that has undefined value 37.188 +no such property _ 37.189 +TypeError: Cannot call "_" that has undefined value 37.190 +no such property _ 37.191 +TypeError: Cannot call "_" that has undefined value 37.192 +no such property _ 37.193 +TypeError: Cannot call "_" that has undefined value 37.194 +no such property _ 37.195 +TypeError: Cannot call "_" that has undefined value 37.196 +no such property _ 37.197 +TypeError: Cannot call "_" that has undefined value 37.198 +no such property _ 37.199 +TypeError: Cannot call "_" that has undefined value 37.200 +no such property _ 37.201 +TypeError: Cannot call "_" that has undefined value 37.202 +no such property _ 37.203 +TypeError: Cannot call "_" that has undefined value 37.204 +no such property _ 37.205 +TypeError: Cannot call "_" that has undefined value 37.206 +no such property _ 37.207 +TypeError: Cannot call "_" that has undefined value 37.208 +no such property _ 37.209 +TypeError: Cannot call "_" that has undefined value 37.210 +no such property _ 37.211 +TypeError: Cannot call "_" that has undefined value 37.212 +no such property _ 37.213 +TypeError: Cannot call "_" that has undefined value 37.214 +no such property _ 37.215 +TypeError: Cannot call "_" that has undefined value 37.216 +no such property _ 37.217 +TypeError: Cannot call "_" that has undefined value 37.218 +no such property _ 37.219 +TypeError: Cannot call "_" that has undefined value 37.220 +no such property _ 37.221 +TypeError: Cannot call "_" that has undefined value 37.222 +no such property _ 37.223 +TypeError: Cannot call "_" that has undefined value 37.224 +no such property _ 37.225 +TypeError: Cannot call "_" that has undefined value 37.226 +no such property _ 37.227 +TypeError: Cannot call "_" that has undefined value 37.228 +no such property _ 37.229 +TypeError: Cannot call "_" that has undefined value 37.230 +no such property _ 37.231 +TypeError: Cannot call "_" that has undefined value 37.232 +no such property _ 37.233 +TypeError: Cannot call "_" that has undefined value 37.234 +no such property _ 37.235 +TypeError: Cannot call "_" that has undefined value 37.236 +no such property _ 37.237 +TypeError: Cannot call "_" that has undefined value 37.238 +no such property _ 37.239 +no such property _ 37.240 +no such property _ 37.241 +no such property _ 37.242 +no such property _ 37.243 +no such property _ 37.244 +no such property _ 37.245 +no such property _ 37.246 +no such property _ 37.247 +no such property _ 37.248 +no such property _ 37.249 +no such property _ 37.250 +no such property _ 37.251 +no such property _ 37.252 +no such property _ 37.253 +no such property _ 37.254 +no such property _ 37.255 +no such property _ 37.256 +no such property _ 37.257 +no such property _ 37.258 +no such property _ 37.259 +no such property _ 37.260 +no such property _ 37.261 +no such property _ 37.262 +no such property _ 37.263 +no such property _ 37.264 +no such method _,0 37.265 +no such method _,1 37.266 +no such method _,2 37.267 +no such method _,3 37.268 +no such method _,4 37.269 +no such method _,5 37.270 +no such method _,6 37.271 +no such method _,7 37.272 +no such method _,8 37.273 +no such method _,9 37.274 +no such method _,10 37.275 +no such method _,11 37.276 +no such method _,12 37.277 +no such method _,13 37.278 +no such method _,14 37.279 +no such method _,15 37.280 +no such method _,16 37.281 +no such method _,17 37.282 +no such method _,18 37.283 +no such method _,19 37.284 +no such method _,20 37.285 +no such method _,21 37.286 +no such method _,22 37.287 +no such method _,23 37.288 +no such method _,24 37.289 +no such method _,25 37.290 +no such property _ 37.291 +no such property _ 37.292 +no such property _ 37.293 +no such property _ 37.294 +no such property _ 37.295 +no such property _ 37.296 +no such property _ 37.297 +no such property _ 37.298 +no such property _ 37.299 +no such property _ 37.300 +no such property _ 37.301 +no such property _ 37.302 +no such property _ 37.303 +no such property _ 37.304 +no such property _ 37.305 +no such property _ 37.306 +no such property _ 37.307 +no such property _ 37.308 +no such property _ 37.309 +no such property _ 37.310 +no such property _ 37.311 +no such property _ 37.312 +no such property _ 37.313 +no such property _ 37.314 +no such property _ 37.315 +no such property _ 37.316 +TypeError: Cannot call "_" that has undefined value 37.317 +TypeError: Cannot call "_" that has undefined value 37.318 +TypeError: Cannot call "_" that has undefined value 37.319 +TypeError: Cannot call "_" that has undefined value 37.320 +TypeError: Cannot call "_" that has undefined value 37.321 +TypeError: Cannot call "_" that has undefined value 37.322 +TypeError: Cannot call "_" that has undefined value 37.323 +TypeError: Cannot call "_" that has undefined value 37.324 +TypeError: Cannot call "_" that has undefined value 37.325 +TypeError: Cannot call "_" that has undefined value 37.326 +TypeError: Cannot call "_" that has undefined value 37.327 +TypeError: Cannot call "_" that has undefined value 37.328 +TypeError: Cannot call "_" that has undefined value 37.329 +TypeError: Cannot call "_" that has undefined value 37.330 +TypeError: Cannot call "_" that has undefined value 37.331 +TypeError: Cannot call "_" that has undefined value 37.332 +TypeError: Cannot call "_" that has undefined value 37.333 +TypeError: Cannot call "_" that has undefined value 37.334 +TypeError: Cannot call "_" that has undefined value 37.335 +TypeError: Cannot call "_" that has undefined value 37.336 +TypeError: Cannot call "_" that has undefined value 37.337 +TypeError: Cannot call "_" that has undefined value 37.338 +TypeError: Cannot call "_" that has undefined value 37.339 +TypeError: Cannot call "_" that has undefined value 37.340 +TypeError: Cannot call "_" that has undefined value 37.341 +TypeError: Cannot call "_" that has undefined value 37.342 +no such property _ 37.343 +no such property _ 37.344 +no such property _ 37.345 +no such property _ 37.346 +no such property _ 37.347 +no such property _ 37.348 +no such property _ 37.349 +no such property _ 37.350 +no such property _ 37.351 +no such property _ 37.352 +no such property _ 37.353 +no such property _ 37.354 +no such property _ 37.355 +no such property _ 37.356 +no such property _ 37.357 +no such property _ 37.358 +no such property _ 37.359 +no such property _ 37.360 +no such property _ 37.361 +no such property _ 37.362 +no such property _ 37.363 +no such property _ 37.364 +no such property _ 37.365 +no such property _ 37.366 +no such property _ 37.367 +no such property _
38.1 --- a/test/script/basic/JDK-8035712.js Fri Aug 07 11:55:46 2015 -0700 38.2 +++ b/test/script/basic/JDK-8035712.js Tue Aug 11 12:49:01 2015 -0700 38.3 @@ -1,21 +1,21 @@ 38.4 /* 38.5 - * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved. 38.6 + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. 38.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 38.8 - * 38.9 + * 38.10 * This code is free software; you can redistribute it and/or modify it 38.11 * under the terms of the GNU General Public License version 2 only, as 38.12 * published by the Free Software Foundation. 38.13 - * 38.14 + * 38.15 * This code is distributed in the hope that it will be useful, but WITHOUT 38.16 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 38.17 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 38.18 * version 2 for more details (a copy is included in the LICENSE file that 38.19 * accompanied this code). 38.20 - * 38.21 + * 38.22 * You should have received a copy of the GNU General Public License version 38.23 * 2 along with this work; if not, write to the Free Software Foundation, 38.24 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 38.25 - * 38.26 + * 38.27 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 38.28 * or visit www.oracle.com if you need additional information or have any 38.29 * questions.
39.1 --- a/test/script/basic/JDK-8051778.js Fri Aug 07 11:55:46 2015 -0700 39.2 +++ b/test/script/basic/JDK-8051778.js Tue Aug 11 12:49:01 2015 -0700 39.3 @@ -1,21 +1,21 @@ 39.4 /* 39.5 - * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved. 39.6 + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. 39.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 39.8 - * 39.9 + * 39.10 * This code is free software; you can redistribute it and/or modify it 39.11 * under the terms of the GNU General Public License version 2 only, as 39.12 * published by the Free Software Foundation. 39.13 - * 39.14 + * 39.15 * This code is distributed in the hope that it will be useful, but WITHOUT 39.16 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 39.17 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 39.18 * version 2 for more details (a copy is included in the LICENSE file that 39.19 * accompanied this code). 39.20 - * 39.21 + * 39.22 * You should have received a copy of the GNU General Public License version 39.23 * 2 along with this work; if not, write to the Free Software Foundation, 39.24 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 39.25 - * 39.26 + * 39.27 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 39.28 * or visit www.oracle.com if you need additional information or have any 39.29 * questions.
40.1 --- a/test/script/basic/JDK-8058610.js Fri Aug 07 11:55:46 2015 -0700 40.2 +++ b/test/script/basic/JDK-8058610.js Tue Aug 11 12:49:01 2015 -0700 40.3 @@ -1,21 +1,21 @@ 40.4 /* 40.5 - * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved. 40.6 + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. 40.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 40.8 - * 40.9 + * 40.10 * This code is free software; you can redistribute it and/or modify it 40.11 * under the terms of the GNU General Public License version 2 only, as 40.12 * published by the Free Software Foundation. 40.13 - * 40.14 + * 40.15 * This code is distributed in the hope that it will be useful, but WITHOUT 40.16 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 40.17 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 40.18 * version 2 for more details (a copy is included in the LICENSE file that 40.19 * accompanied this code). 40.20 - * 40.21 + * 40.22 * You should have received a copy of the GNU General Public License version 40.23 * 2 along with this work; if not, write to the Free Software Foundation, 40.24 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 40.25 - * 40.26 + * 40.27 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 40.28 * or visit www.oracle.com if you need additional information or have any 40.29 * questions.
41.1 --- a/test/script/basic/JDK-8061113.js Fri Aug 07 11:55:46 2015 -0700 41.2 +++ b/test/script/basic/JDK-8061113.js Tue Aug 11 12:49:01 2015 -0700 41.3 @@ -1,21 +1,21 @@ 41.4 /* 41.5 - * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved. 41.6 + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. 41.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 41.8 - * 41.9 + * 41.10 * This code is free software; you can redistribute it and/or modify it 41.11 * under the terms of the GNU General Public License version 2 only, as 41.12 * published by the Free Software Foundation. 41.13 - * 41.14 + * 41.15 * This code is distributed in the hope that it will be useful, but WITHOUT 41.16 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 41.17 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 41.18 * version 2 for more details (a copy is included in the LICENSE file that 41.19 * accompanied this code). 41.20 - * 41.21 + * 41.22 * You should have received a copy of the GNU General Public License version 41.23 * 2 along with this work; if not, write to the Free Software Foundation, 41.24 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 41.25 - * 41.26 + * 41.27 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 41.28 * or visit www.oracle.com if you need additional information or have any 41.29 * questions.
42.1 --- a/test/script/basic/JDK-8062799.js Fri Aug 07 11:55:46 2015 -0700 42.2 +++ b/test/script/basic/JDK-8062799.js Tue Aug 11 12:49:01 2015 -0700 42.3 @@ -1,21 +1,21 @@ 42.4 /* 42.5 - * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved. 42.6 + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. 42.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 42.8 - * 42.9 + * 42.10 * This code is free software; you can redistribute it and/or modify it 42.11 * under the terms of the GNU General Public License version 2 only, as 42.12 * published by the Free Software Foundation. 42.13 - * 42.14 + * 42.15 * This code is distributed in the hope that it will be useful, but WITHOUT 42.16 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 42.17 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 42.18 * version 2 for more details (a copy is included in the LICENSE file that 42.19 * accompanied this code). 42.20 - * 42.21 + * 42.22 * You should have received a copy of the GNU General Public License version 42.23 * 2 along with this work; if not, write to the Free Software Foundation, 42.24 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 42.25 - * 42.26 + * 42.27 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 42.28 * or visit www.oracle.com if you need additional information or have any 42.29 * questions. 42.30 @@ -100,4 +100,4 @@ 42.31 42.32 42.33 42.34 - 42.35 \ No newline at end of file 42.36 +
43.1 --- a/test/script/basic/JDK-8066221.js Fri Aug 07 11:55:46 2015 -0700 43.2 +++ b/test/script/basic/JDK-8066221.js Tue Aug 11 12:49:01 2015 -0700 43.3 @@ -1,21 +1,21 @@ 43.4 /* 43.5 - * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved. 43.6 + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. 43.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 43.8 - * 43.9 + * 43.10 * This code is free software; you can redistribute it and/or modify it 43.11 * under the terms of the GNU General Public License version 2 only, as 43.12 * published by the Free Software Foundation. 43.13 - * 43.14 + * 43.15 * This code is distributed in the hope that it will be useful, but WITHOUT 43.16 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 43.17 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 43.18 * version 2 for more details (a copy is included in the LICENSE file that 43.19 * accompanied this code). 43.20 - * 43.21 + * 43.22 * You should have received a copy of the GNU General Public License version 43.23 * 2 along with this work; if not, write to the Free Software Foundation, 43.24 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 43.25 - * 43.26 + * 43.27 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 43.28 * or visit www.oracle.com if you need additional information or have any 43.29 * questions.
44.1 --- a/test/script/basic/JDK-8066222.js Fri Aug 07 11:55:46 2015 -0700 44.2 +++ b/test/script/basic/JDK-8066222.js Tue Aug 11 12:49:01 2015 -0700 44.3 @@ -1,21 +1,21 @@ 44.4 /* 44.5 - * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved. 44.6 + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. 44.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 44.8 - * 44.9 + * 44.10 * This code is free software; you can redistribute it and/or modify it 44.11 * under the terms of the GNU General Public License version 2 only, as 44.12 * published by the Free Software Foundation. 44.13 - * 44.14 + * 44.15 * This code is distributed in the hope that it will be useful, but WITHOUT 44.16 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 44.17 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 44.18 * version 2 for more details (a copy is included in the LICENSE file that 44.19 * accompanied this code). 44.20 - * 44.21 + * 44.22 * You should have received a copy of the GNU General Public License version 44.23 * 2 along with this work; if not, write to the Free Software Foundation, 44.24 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 44.25 - * 44.26 + * 44.27 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 44.28 * or visit www.oracle.com if you need additional information or have any 44.29 * questions.
45.1 --- a/test/script/basic/JDK-8066224.js Fri Aug 07 11:55:46 2015 -0700 45.2 +++ b/test/script/basic/JDK-8066224.js Tue Aug 11 12:49:01 2015 -0700 45.3 @@ -1,21 +1,21 @@ 45.4 /* 45.5 - * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved. 45.6 + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. 45.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 45.8 - * 45.9 + * 45.10 * This code is free software; you can redistribute it and/or modify it 45.11 * under the terms of the GNU General Public License version 2 only, as 45.12 * published by the Free Software Foundation. 45.13 - * 45.14 + * 45.15 * This code is distributed in the hope that it will be useful, but WITHOUT 45.16 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 45.17 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 45.18 * version 2 for more details (a copy is included in the LICENSE file that 45.19 * accompanied this code). 45.20 - * 45.21 + * 45.22 * You should have received a copy of the GNU General Public License version 45.23 * 2 along with this work; if not, write to the Free Software Foundation, 45.24 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 45.25 - * 45.26 + * 45.27 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 45.28 * or visit www.oracle.com if you need additional information or have any 45.29 * questions.
46.1 --- a/test/script/basic/JDK-8066225.js Fri Aug 07 11:55:46 2015 -0700 46.2 +++ b/test/script/basic/JDK-8066225.js Tue Aug 11 12:49:01 2015 -0700 46.3 @@ -1,21 +1,21 @@ 46.4 /* 46.5 - * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved. 46.6 + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. 46.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 46.8 - * 46.9 + * 46.10 * This code is free software; you can redistribute it and/or modify it 46.11 * under the terms of the GNU General Public License version 2 only, as 46.12 * published by the Free Software Foundation. 46.13 - * 46.14 + * 46.15 * This code is distributed in the hope that it will be useful, but WITHOUT 46.16 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 46.17 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 46.18 * version 2 for more details (a copy is included in the LICENSE file that 46.19 * accompanied this code). 46.20 - * 46.21 + * 46.22 * You should have received a copy of the GNU General Public License version 46.23 * 2 along with this work; if not, write to the Free Software Foundation, 46.24 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 46.25 - * 46.26 + * 46.27 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 46.28 * or visit www.oracle.com if you need additional information or have any 46.29 * questions.
47.1 --- a/test/script/basic/JDK-8066227.js Fri Aug 07 11:55:46 2015 -0700 47.2 +++ b/test/script/basic/JDK-8066227.js Tue Aug 11 12:49:01 2015 -0700 47.3 @@ -1,21 +1,21 @@ 47.4 /* 47.5 - * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved. 47.6 + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. 47.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 47.8 - * 47.9 + * 47.10 * This code is free software; you can redistribute it and/or modify it 47.11 * under the terms of the GNU General Public License version 2 only, as 47.12 * published by the Free Software Foundation. 47.13 - * 47.14 + * 47.15 * This code is distributed in the hope that it will be useful, but WITHOUT 47.16 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 47.17 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 47.18 * version 2 for more details (a copy is included in the LICENSE file that 47.19 * accompanied this code). 47.20 - * 47.21 + * 47.22 * You should have received a copy of the GNU General Public License version 47.23 * 2 along with this work; if not, write to the Free Software Foundation, 47.24 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 47.25 - * 47.26 + * 47.27 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 47.28 * or visit www.oracle.com if you need additional information or have any 47.29 * questions.
48.1 --- a/test/script/basic/JDK-8066230.js Fri Aug 07 11:55:46 2015 -0700 48.2 +++ b/test/script/basic/JDK-8066230.js Tue Aug 11 12:49:01 2015 -0700 48.3 @@ -1,21 +1,21 @@ 48.4 /* 48.5 - * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved. 48.6 + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. 48.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 48.8 - * 48.9 + * 48.10 * This code is free software; you can redistribute it and/or modify it 48.11 * under the terms of the GNU General Public License version 2 only, as 48.12 * published by the Free Software Foundation. 48.13 - * 48.14 + * 48.15 * This code is distributed in the hope that it will be useful, but WITHOUT 48.16 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 48.17 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 48.18 * version 2 for more details (a copy is included in the LICENSE file that 48.19 * accompanied this code). 48.20 - * 48.21 + * 48.22 * You should have received a copy of the GNU General Public License version 48.23 * 2 along with this work; if not, write to the Free Software Foundation, 48.24 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 48.25 - * 48.26 + * 48.27 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 48.28 * or visit www.oracle.com if you need additional information or have any 48.29 * questions.
49.1 --- a/test/script/basic/JDK-8066232.js Fri Aug 07 11:55:46 2015 -0700 49.2 +++ b/test/script/basic/JDK-8066232.js Tue Aug 11 12:49:01 2015 -0700 49.3 @@ -1,21 +1,21 @@ 49.4 /* 49.5 - * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved. 49.6 + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. 49.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 49.8 - * 49.9 + * 49.10 * This code is free software; you can redistribute it and/or modify it 49.11 * under the terms of the GNU General Public License version 2 only, as 49.12 * published by the Free Software Foundation. 49.13 - * 49.14 + * 49.15 * This code is distributed in the hope that it will be useful, but WITHOUT 49.16 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 49.17 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 49.18 * version 2 for more details (a copy is included in the LICENSE file that 49.19 * accompanied this code). 49.20 - * 49.21 + * 49.22 * You should have received a copy of the GNU General Public License version 49.23 * 2 along with this work; if not, write to the Free Software Foundation, 49.24 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 49.25 - * 49.26 + * 49.27 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 49.28 * or visit www.oracle.com if you need additional information or have any 49.29 * questions.
50.1 --- a/test/script/basic/JDK-8066236.js Fri Aug 07 11:55:46 2015 -0700 50.2 +++ b/test/script/basic/JDK-8066236.js Tue Aug 11 12:49:01 2015 -0700 50.3 @@ -1,21 +1,21 @@ 50.4 /* 50.5 - * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved. 50.6 + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. 50.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 50.8 - * 50.9 + * 50.10 * This code is free software; you can redistribute it and/or modify it 50.11 * under the terms of the GNU General Public License version 2 only, as 50.12 * published by the Free Software Foundation. 50.13 - * 50.14 + * 50.15 * This code is distributed in the hope that it will be useful, but WITHOUT 50.16 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 50.17 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 50.18 * version 2 for more details (a copy is included in the LICENSE file that 50.19 * accompanied this code). 50.20 - * 50.21 + * 50.22 * You should have received a copy of the GNU General Public License version 50.23 * 2 along with this work; if not, write to the Free Software Foundation, 50.24 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 50.25 - * 50.26 + * 50.27 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 50.28 * or visit www.oracle.com if you need additional information or have any 50.29 * questions.
51.1 --- a/test/script/basic/JDK-8067139.js Fri Aug 07 11:55:46 2015 -0700 51.2 +++ b/test/script/basic/JDK-8067139.js Tue Aug 11 12:49:01 2015 -0700 51.3 @@ -1,21 +1,21 @@ 51.4 /* 51.5 - * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved. 51.6 + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. 51.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 51.8 - * 51.9 + * 51.10 * This code is free software; you can redistribute it and/or modify it 51.11 * under the terms of the GNU General Public License version 2 only, as 51.12 * published by the Free Software Foundation. 51.13 - * 51.14 + * 51.15 * This code is distributed in the hope that it will be useful, but WITHOUT 51.16 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 51.17 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 51.18 * version 2 for more details (a copy is included in the LICENSE file that 51.19 * accompanied this code). 51.20 - * 51.21 + * 51.22 * You should have received a copy of the GNU General Public License version 51.23 * 2 along with this work; if not, write to the Free Software Foundation, 51.24 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 51.25 - * 51.26 + * 51.27 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 51.28 * or visit www.oracle.com if you need additional information or have any 51.29 * questions.
52.1 --- a/test/script/basic/JDK-8067774.js Fri Aug 07 11:55:46 2015 -0700 52.2 +++ b/test/script/basic/JDK-8067774.js Tue Aug 11 12:49:01 2015 -0700 52.3 @@ -1,21 +1,21 @@ 52.4 /* 52.5 - * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved. 52.6 + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. 52.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 52.8 - * 52.9 + * 52.10 * This code is free software; you can redistribute it and/or modify it 52.11 * under the terms of the GNU General Public License version 2 only, as 52.12 * published by the Free Software Foundation. 52.13 - * 52.14 + * 52.15 * This code is distributed in the hope that it will be useful, but WITHOUT 52.16 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 52.17 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 52.18 * version 2 for more details (a copy is included in the LICENSE file that 52.19 * accompanied this code). 52.20 - * 52.21 + * 52.22 * You should have received a copy of the GNU General Public License version 52.23 * 2 along with this work; if not, write to the Free Software Foundation, 52.24 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 52.25 - * 52.26 + * 52.27 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 52.28 * or visit www.oracle.com if you need additional information or have any 52.29 * questions.
53.1 --- a/test/script/basic/JDK-8068573.js Fri Aug 07 11:55:46 2015 -0700 53.2 +++ b/test/script/basic/JDK-8068573.js Tue Aug 11 12:49:01 2015 -0700 53.3 @@ -1,21 +1,21 @@ 53.4 /* 53.5 - * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved. 53.6 + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. 53.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 53.8 - * 53.9 + * 53.10 * This code is free software; you can redistribute it and/or modify it 53.11 * under the terms of the GNU General Public License version 2 only, as 53.12 * published by the Free Software Foundation. 53.13 - * 53.14 + * 53.15 * This code is distributed in the hope that it will be useful, but WITHOUT 53.16 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 53.17 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 53.18 * version 2 for more details (a copy is included in the LICENSE file that 53.19 * accompanied this code). 53.20 - * 53.21 + * 53.22 * You should have received a copy of the GNU General Public License version 53.23 * 2 along with this work; if not, write to the Free Software Foundation, 53.24 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 53.25 - * 53.26 + * 53.27 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 53.28 * or visit www.oracle.com if you need additional information or have any 53.29 * questions.
54.1 --- a/test/script/basic/JDK-8068580.js Fri Aug 07 11:55:46 2015 -0700 54.2 +++ b/test/script/basic/JDK-8068580.js Tue Aug 11 12:49:01 2015 -0700 54.3 @@ -1,21 +1,21 @@ 54.4 /* 54.5 - * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved. 54.6 + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. 54.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 54.8 - * 54.9 + * 54.10 * This code is free software; you can redistribute it and/or modify it 54.11 * under the terms of the GNU General Public License version 2 only, as 54.12 * published by the Free Software Foundation. 54.13 - * 54.14 + * 54.15 * This code is distributed in the hope that it will be useful, but WITHOUT 54.16 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 54.17 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 54.18 * version 2 for more details (a copy is included in the LICENSE file that 54.19 * accompanied this code). 54.20 - * 54.21 + * 54.22 * You should have received a copy of the GNU General Public License version 54.23 * 2 along with this work; if not, write to the Free Software Foundation, 54.24 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 54.25 - * 54.26 + * 54.27 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 54.28 * or visit www.oracle.com if you need additional information or have any 54.29 * questions.
55.1 --- a/test/script/basic/JDK-8068985.js Fri Aug 07 11:55:46 2015 -0700 55.2 +++ b/test/script/basic/JDK-8068985.js Tue Aug 11 12:49:01 2015 -0700 55.3 @@ -1,21 +1,21 @@ 55.4 /* 55.5 - * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved. 55.6 + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. 55.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 55.8 - * 55.9 + * 55.10 * This code is free software; you can redistribute it and/or modify it 55.11 * under the terms of the GNU General Public License version 2 only, as 55.12 * published by the Free Software Foundation. 55.13 - * 55.14 + * 55.15 * This code is distributed in the hope that it will be useful, but WITHOUT 55.16 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 55.17 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 55.18 * version 2 for more details (a copy is included in the LICENSE file that 55.19 * accompanied this code). 55.20 - * 55.21 + * 55.22 * You should have received a copy of the GNU General Public License version 55.23 * 2 along with this work; if not, write to the Free Software Foundation, 55.24 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 55.25 - * 55.26 + * 55.27 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 55.28 * or visit www.oracle.com if you need additional information or have any 55.29 * questions.
56.1 --- a/test/script/basic/JDK-8069002.js Fri Aug 07 11:55:46 2015 -0700 56.2 +++ b/test/script/basic/JDK-8069002.js Tue Aug 11 12:49:01 2015 -0700 56.3 @@ -1,21 +1,21 @@ 56.4 /* 56.5 - * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved. 56.6 + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. 56.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 56.8 - * 56.9 + * 56.10 * This code is free software; you can redistribute it and/or modify it 56.11 * under the terms of the GNU General Public License version 2 only, as 56.12 * published by the Free Software Foundation. 56.13 - * 56.14 + * 56.15 * This code is distributed in the hope that it will be useful, but WITHOUT 56.16 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 56.17 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 56.18 * version 2 for more details (a copy is included in the LICENSE file that 56.19 * accompanied this code). 56.20 - * 56.21 + * 56.22 * You should have received a copy of the GNU General Public License version 56.23 * 2 along with this work; if not, write to the Free Software Foundation, 56.24 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 56.25 - * 56.26 + * 56.27 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 56.28 * or visit www.oracle.com if you need additional information or have any 56.29 * questions.
57.1 --- a/test/script/basic/JDK-8072426.js Fri Aug 07 11:55:46 2015 -0700 57.2 +++ b/test/script/basic/JDK-8072426.js Tue Aug 11 12:49:01 2015 -0700 57.3 @@ -1,21 +1,21 @@ 57.4 /* 57.5 - * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved. 57.6 + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. 57.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 57.8 - * 57.9 + * 57.10 * This code is free software; you can redistribute it and/or modify it 57.11 * under the terms of the GNU General Public License version 2 only, as 57.12 * published by the Free Software Foundation. 57.13 - * 57.14 + * 57.15 * This code is distributed in the hope that it will be useful, but WITHOUT 57.16 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 57.17 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 57.18 * version 2 for more details (a copy is included in the LICENSE file that 57.19 * accompanied this code). 57.20 - * 57.21 + * 57.22 * You should have received a copy of the GNU General Public License version 57.23 * 2 along with this work; if not, write to the Free Software Foundation, 57.24 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 57.25 - * 57.26 + * 57.27 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 57.28 * or visit www.oracle.com if you need additional information or have any 57.29 * questions.
58.1 --- a/test/script/basic/JDK-8072596.js Fri Aug 07 11:55:46 2015 -0700 58.2 +++ b/test/script/basic/JDK-8072596.js Tue Aug 11 12:49:01 2015 -0700 58.3 @@ -1,21 +1,21 @@ 58.4 /* 58.5 - * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved. 58.6 + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. 58.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 58.8 - * 58.9 + * 58.10 * This code is free software; you can redistribute it and/or modify it 58.11 * under the terms of the GNU General Public License version 2 only, as 58.12 * published by the Free Software Foundation. 58.13 - * 58.14 + * 58.15 * This code is distributed in the hope that it will be useful, but WITHOUT 58.16 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 58.17 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 58.18 * version 2 for more details (a copy is included in the LICENSE file that 58.19 * accompanied this code). 58.20 - * 58.21 + * 58.22 * You should have received a copy of the GNU General Public License version 58.23 * 2 along with this work; if not, write to the Free Software Foundation, 58.24 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 58.25 - * 58.26 + * 58.27 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 58.28 * or visit www.oracle.com if you need additional information or have any 58.29 * questions.
59.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 59.2 +++ b/test/script/basic/JDK-8073733.js Tue Aug 11 12:49:01 2015 -0700 59.3 @@ -0,0 +1,49 @@ 59.4 +/* 59.5 + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. 59.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 59.7 + * 59.8 + * This code is free software; you can redistribute it and/or modify it 59.9 + * under the terms of the GNU General Public License version 2 only, as 59.10 + * published by the Free Software Foundation. 59.11 + * 59.12 + * This code is distributed in the hope that it will be useful, but WITHOUT 59.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 59.14 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 59.15 + * version 2 for more details (a copy is included in the LICENSE file that 59.16 + * accompanied this code). 59.17 + * 59.18 + * You should have received a copy of the GNU General Public License version 59.19 + * 2 along with this work; if not, write to the Free Software Foundation, 59.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 59.21 + * 59.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 59.23 + * or visit www.oracle.com if you need additional information or have any 59.24 + * questions. 59.25 + */ 59.26 + 59.27 +/** 59.28 + * JDK-8073733: TypeError messages with "call" and "new" could be improved 59.29 + * 59.30 + * @test 59.31 + * @run 59.32 + */ 59.33 + 59.34 +var func = undefined; 59.35 +try { 59.36 + func(); 59.37 +} catch (e) { 59.38 + print(e); 59.39 +} 59.40 + 59.41 +var obj = {}; 59.42 +try { 59.43 + obj.foo(); 59.44 +} catch (e) { 59.45 + print(e); 59.46 +} 59.47 + 59.48 +try { 59.49 + new func(); 59.50 +} catch (e) { 59.51 + print(e); 59.52 +}
60.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 60.2 +++ b/test/script/basic/JDK-8073733.js.EXPECTED Tue Aug 11 12:49:01 2015 -0700 60.3 @@ -0,0 +1,3 @@ 60.4 +TypeError: Cannot call "func" that has undefined value 60.5 +TypeError: Cannot call "foo" that has undefined value 60.6 +TypeError: Cannot call "func" that has undefined value
61.1 --- a/test/script/basic/JDK-8075090.js Fri Aug 07 11:55:46 2015 -0700 61.2 +++ b/test/script/basic/JDK-8075090.js Tue Aug 11 12:49:01 2015 -0700 61.3 @@ -1,21 +1,21 @@ 61.4 /* 61.5 - * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved. 61.6 + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. 61.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 61.8 - * 61.9 + * 61.10 * This code is free software; you can redistribute it and/or modify it 61.11 * under the terms of the GNU General Public License version 2 only, as 61.12 * published by the Free Software Foundation. 61.13 - * 61.14 + * 61.15 * This code is distributed in the hope that it will be useful, but WITHOUT 61.16 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 61.17 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 61.18 * version 2 for more details (a copy is included in the LICENSE file that 61.19 * accompanied this code). 61.20 - * 61.21 + * 61.22 * You should have received a copy of the GNU General Public License version 61.23 * 2 along with this work; if not, write to the Free Software Foundation, 61.24 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 61.25 - * 61.26 + * 61.27 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 61.28 * or visit www.oracle.com if you need additional information or have any 61.29 * questions.
62.1 --- a/test/script/basic/JDK-8079145.js Fri Aug 07 11:55:46 2015 -0700 62.2 +++ b/test/script/basic/JDK-8079145.js Tue Aug 11 12:49:01 2015 -0700 62.3 @@ -1,21 +1,21 @@ 62.4 /* 62.5 - * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved. 62.6 + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. 62.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 62.8 - * 62.9 + * 62.10 * This code is free software; you can redistribute it and/or modify it 62.11 * under the terms of the GNU General Public License version 2 only, as 62.12 * published by the Free Software Foundation. 62.13 - * 62.14 + * 62.15 * This code is distributed in the hope that it will be useful, but WITHOUT 62.16 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 62.17 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 62.18 * version 2 for more details (a copy is included in the LICENSE file that 62.19 * accompanied this code). 62.20 - * 62.21 + * 62.22 * You should have received a copy of the GNU General Public License version 62.23 * 2 along with this work; if not, write to the Free Software Foundation, 62.24 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 62.25 - * 62.26 + * 62.27 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 62.28 * or visit www.oracle.com if you need additional information or have any 62.29 * questions.
63.1 --- a/test/script/basic/JDK-8079269.js Fri Aug 07 11:55:46 2015 -0700 63.2 +++ b/test/script/basic/JDK-8079269.js Tue Aug 11 12:49:01 2015 -0700 63.3 @@ -1,21 +1,21 @@ 63.4 /* 63.5 - * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved. 63.6 + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. 63.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 63.8 - * 63.9 + * 63.10 * This code is free software; you can redistribute it and/or modify it 63.11 * under the terms of the GNU General Public License version 2 only, as 63.12 * published by the Free Software Foundation. 63.13 - * 63.14 + * 63.15 * This code is distributed in the hope that it will be useful, but WITHOUT 63.16 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 63.17 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 63.18 * version 2 for more details (a copy is included in the LICENSE file that 63.19 * accompanied this code). 63.20 - * 63.21 + * 63.22 * You should have received a copy of the GNU General Public License version 63.23 * 2 along with this work; if not, write to the Free Software Foundation, 63.24 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 63.25 - * 63.26 + * 63.27 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 63.28 * or visit www.oracle.com if you need additional information or have any 63.29 * questions.
64.1 --- a/test/script/basic/JDK-8079424.js Fri Aug 07 11:55:46 2015 -0700 64.2 +++ b/test/script/basic/JDK-8079424.js Tue Aug 11 12:49:01 2015 -0700 64.3 @@ -1,21 +1,21 @@ 64.4 /* 64.5 - * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved. 64.6 + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. 64.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 64.8 - * 64.9 + * 64.10 * This code is free software; you can redistribute it and/or modify it 64.11 * under the terms of the GNU General Public License version 2 only, as 64.12 * published by the Free Software Foundation. 64.13 - * 64.14 + * 64.15 * This code is distributed in the hope that it will be useful, but WITHOUT 64.16 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 64.17 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 64.18 * version 2 for more details (a copy is included in the LICENSE file that 64.19 * accompanied this code). 64.20 - * 64.21 + * 64.22 * You should have received a copy of the GNU General Public License version 64.23 * 2 along with this work; if not, write to the Free Software Foundation, 64.24 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 64.25 - * 64.26 + * 64.27 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 64.28 * or visit www.oracle.com if you need additional information or have any 64.29 * questions.
65.1 --- a/test/script/basic/JDK-8079470.js Fri Aug 07 11:55:46 2015 -0700 65.2 +++ b/test/script/basic/JDK-8079470.js Tue Aug 11 12:49:01 2015 -0700 65.3 @@ -1,21 +1,21 @@ 65.4 /* 65.5 - * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved. 65.6 + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. 65.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 65.8 - * 65.9 + * 65.10 * This code is free software; you can redistribute it and/or modify it 65.11 * under the terms of the GNU General Public License version 2 only, as 65.12 * published by the Free Software Foundation. 65.13 - * 65.14 + * 65.15 * This code is distributed in the hope that it will be useful, but WITHOUT 65.16 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 65.17 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 65.18 * version 2 for more details (a copy is included in the LICENSE file that 65.19 * accompanied this code). 65.20 - * 65.21 + * 65.22 * You should have received a copy of the GNU General Public License version 65.23 * 2 along with this work; if not, write to the Free Software Foundation, 65.24 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 65.25 - * 65.26 + * 65.27 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 65.28 * or visit www.oracle.com if you need additional information or have any 65.29 * questions.
66.1 --- a/test/script/basic/JDK-8080182.js Fri Aug 07 11:55:46 2015 -0700 66.2 +++ b/test/script/basic/JDK-8080182.js Tue Aug 11 12:49:01 2015 -0700 66.3 @@ -1,21 +1,21 @@ 66.4 /* 66.5 - * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved. 66.6 + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. 66.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 66.8 - * 66.9 + * 66.10 * This code is free software; you can redistribute it and/or modify it 66.11 * under the terms of the GNU General Public License version 2 only, as 66.12 * published by the Free Software Foundation. 66.13 - * 66.14 + * 66.15 * This code is distributed in the hope that it will be useful, but WITHOUT 66.16 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 66.17 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 66.18 * version 2 for more details (a copy is included in the LICENSE file that 66.19 * accompanied this code). 66.20 - * 66.21 + * 66.22 * You should have received a copy of the GNU General Public License version 66.23 * 2 along with this work; if not, write to the Free Software Foundation, 66.24 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 66.25 - * 66.26 + * 66.27 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 66.28 * or visit www.oracle.com if you need additional information or have any 66.29 * questions.
67.1 --- a/test/script/basic/JDK-8080848.js Fri Aug 07 11:55:46 2015 -0700 67.2 +++ b/test/script/basic/JDK-8080848.js Tue Aug 11 12:49:01 2015 -0700 67.3 @@ -1,21 +1,21 @@ 67.4 /* 67.5 - * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved. 67.6 + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. 67.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 67.8 - * 67.9 + * 67.10 * This code is free software; you can redistribute it and/or modify it 67.11 * under the terms of the GNU General Public License version 2 only, as 67.12 * published by the Free Software Foundation. 67.13 - * 67.14 + * 67.15 * This code is distributed in the hope that it will be useful, but WITHOUT 67.16 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 67.17 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 67.18 * version 2 for more details (a copy is included in the LICENSE file that 67.19 * accompanied this code). 67.20 - * 67.21 + * 67.22 * You should have received a copy of the GNU General Public License version 67.23 * 2 along with this work; if not, write to the Free Software Foundation, 67.24 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 67.25 - * 67.26 + * 67.27 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 67.28 * or visit www.oracle.com if you need additional information or have any 67.29 * questions.
68.1 --- a/test/script/basic/JDK-8081156.js Fri Aug 07 11:55:46 2015 -0700 68.2 +++ b/test/script/basic/JDK-8081156.js Tue Aug 11 12:49:01 2015 -0700 68.3 @@ -1,21 +1,21 @@ 68.4 /* 68.5 - * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved. 68.6 + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. 68.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 68.8 - * 68.9 + * 68.10 * This code is free software; you can redistribute it and/or modify it 68.11 * under the terms of the GNU General Public License version 2 only, as 68.12 * published by the Free Software Foundation. 68.13 - * 68.14 + * 68.15 * This code is distributed in the hope that it will be useful, but WITHOUT 68.16 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 68.17 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 68.18 * version 2 for more details (a copy is included in the LICENSE file that 68.19 * accompanied this code). 68.20 - * 68.21 + * 68.22 * You should have received a copy of the GNU General Public License version 68.23 * 2 along with this work; if not, write to the Free Software Foundation, 68.24 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 68.25 - * 68.26 + * 68.27 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 68.28 * or visit www.oracle.com if you need additional information or have any 68.29 * questions.
69.1 --- a/test/script/basic/JDK-8085802.js Fri Aug 07 11:55:46 2015 -0700 69.2 +++ b/test/script/basic/JDK-8085802.js Tue Aug 11 12:49:01 2015 -0700 69.3 @@ -1,21 +1,21 @@ 69.4 /* 69.5 - * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved. 69.6 + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. 69.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 69.8 - * 69.9 + * 69.10 * This code is free software; you can redistribute it and/or modify it 69.11 * under the terms of the GNU General Public License version 2 only, as 69.12 * published by the Free Software Foundation. 69.13 - * 69.14 + * 69.15 * This code is distributed in the hope that it will be useful, but WITHOUT 69.16 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 69.17 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 69.18 * version 2 for more details (a copy is included in the LICENSE file that 69.19 * accompanied this code). 69.20 - * 69.21 + * 69.22 * You should have received a copy of the GNU General Public License version 69.23 * 2 along with this work; if not, write to the Free Software Foundation, 69.24 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 69.25 - * 69.26 + * 69.27 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 69.28 * or visit www.oracle.com if you need additional information or have any 69.29 * questions.
70.1 --- a/test/script/basic/JDK-8087211.js Fri Aug 07 11:55:46 2015 -0700 70.2 +++ b/test/script/basic/JDK-8087211.js Tue Aug 11 12:49:01 2015 -0700 70.3 @@ -1,21 +1,21 @@ 70.4 /* 70.5 - * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved. 70.6 + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. 70.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 70.8 - * 70.9 + * 70.10 * This code is free software; you can redistribute it and/or modify it 70.11 * under the terms of the GNU General Public License version 2 only, as 70.12 * published by the Free Software Foundation. 70.13 - * 70.14 + * 70.15 * This code is distributed in the hope that it will be useful, but WITHOUT 70.16 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 70.17 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 70.18 * version 2 for more details (a copy is included in the LICENSE file that 70.19 * accompanied this code). 70.20 - * 70.21 + * 70.22 * You should have received a copy of the GNU General Public License version 70.23 * 2 along with this work; if not, write to the Free Software Foundation, 70.24 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 70.25 - * 70.26 + * 70.27 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 70.28 * or visit www.oracle.com if you need additional information or have any 70.29 * questions.
71.1 --- a/test/script/basic/JDK-8087211_2.js Fri Aug 07 11:55:46 2015 -0700 71.2 +++ b/test/script/basic/JDK-8087211_2.js Tue Aug 11 12:49:01 2015 -0700 71.3 @@ -1,21 +1,21 @@ 71.4 /* 71.5 - * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved. 71.6 + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. 71.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 71.8 - * 71.9 + * 71.10 * This code is free software; you can redistribute it and/or modify it 71.11 * under the terms of the GNU General Public License version 2 only, as 71.12 * published by the Free Software Foundation. 71.13 - * 71.14 + * 71.15 * This code is distributed in the hope that it will be useful, but WITHOUT 71.16 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 71.17 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 71.18 * version 2 for more details (a copy is included in the LICENSE file that 71.19 * accompanied this code). 71.20 - * 71.21 + * 71.22 * You should have received a copy of the GNU General Public License version 71.23 * 2 along with this work; if not, write to the Free Software Foundation, 71.24 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 71.25 - * 71.26 + * 71.27 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 71.28 * or visit www.oracle.com if you need additional information or have any 71.29 * questions.
72.1 --- a/test/script/basic/JDK-8098578.js Fri Aug 07 11:55:46 2015 -0700 72.2 +++ b/test/script/basic/JDK-8098578.js Tue Aug 11 12:49:01 2015 -0700 72.3 @@ -1,21 +1,21 @@ 72.4 /* 72.5 - * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved. 72.6 + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. 72.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 72.8 - * 72.9 + * 72.10 * This code is free software; you can redistribute it and/or modify it 72.11 * under the terms of the GNU General Public License version 2 only, as 72.12 * published by the Free Software Foundation. 72.13 - * 72.14 + * 72.15 * This code is distributed in the hope that it will be useful, but WITHOUT 72.16 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 72.17 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 72.18 * version 2 for more details (a copy is included in the LICENSE file that 72.19 * accompanied this code). 72.20 - * 72.21 + * 72.22 * You should have received a copy of the GNU General Public License version 72.23 * 2 along with this work; if not, write to the Free Software Foundation, 72.24 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 72.25 - * 72.26 + * 72.27 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 72.28 * or visit www.oracle.com if you need additional information or have any 72.29 * questions.
73.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 73.2 +++ b/test/script/basic/JDK-8114838.js Tue Aug 11 12:49:01 2015 -0700 73.3 @@ -0,0 +1,47 @@ 73.4 +/* 73.5 + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. 73.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 73.7 + * 73.8 + * This code is free software; you can redistribute it and/or modify it 73.9 + * under the terms of the GNU General Public License version 2 only, as 73.10 + * published by the Free Software Foundation. 73.11 + * 73.12 + * This code is distributed in the hope that it will be useful, but WITHOUT 73.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 73.14 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 73.15 + * version 2 for more details (a copy is included in the LICENSE file that 73.16 + * accompanied this code). 73.17 + * 73.18 + * You should have received a copy of the GNU General Public License version 73.19 + * 2 along with this work; if not, write to the Free Software Foundation, 73.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 73.21 + * 73.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 73.23 + * or visit www.oracle.com if you need additional information or have any 73.24 + * questions. 73.25 + */ 73.26 + 73.27 +/** 73.28 + * JDK-8114838: Anonymous functions escape to surrounding scope when defined under "with" statement 73.29 + * 73.30 + * @test 73.31 + * @run 73.32 + */ 73.33 + 73.34 +// do *not* introduce new lines! The next line should be 32 73.35 +with({}) { function () {} } 73.36 +if (typeof this["L:32"] != 'undefined') { 73.37 + throw new Error("anonymous name spills into global scope"); 73.38 +} 73.39 + 73.40 +var func = eval("function() {}"); 73.41 +if (typeof func != 'function') { 73.42 + throw new Error("eval of anonymous function does not work!"); 73.43 +} 73.44 + 73.45 +var ScriptEngineManager = Java.type("javax.script.ScriptEngineManager"); 73.46 +var engine = new ScriptEngineManager().getEngineByName("nashorn"); 73.47 +var func2 = engine.eval("function() {}"); 73.48 +if (typeof func2 != 'function') { 73.49 + throw new Error("eval of anonymous function does not work from script engine!"); 73.50 +}
74.1 --- a/test/script/basic/JDK-8129410.js Fri Aug 07 11:55:46 2015 -0700 74.2 +++ b/test/script/basic/JDK-8129410.js Tue Aug 11 12:49:01 2015 -0700 74.3 @@ -1,21 +1,21 @@ 74.4 /* 74.5 - * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved. 74.6 + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. 74.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 74.8 - * 74.9 + * 74.10 * This code is free software; you can redistribute it and/or modify it 74.11 * under the terms of the GNU General Public License version 2 only, as 74.12 * published by the Free Software Foundation. 74.13 - * 74.14 + * 74.15 * This code is distributed in the hope that it will be useful, but WITHOUT 74.16 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 74.17 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 74.18 * version 2 for more details (a copy is included in the LICENSE file that 74.19 * accompanied this code). 74.20 - * 74.21 + * 74.22 * You should have received a copy of the GNU General Public License version 74.23 * 2 along with this work; if not, write to the Free Software Foundation, 74.24 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 74.25 - * 74.26 + * 74.27 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 74.28 * or visit www.oracle.com if you need additional information or have any 74.29 * questions.
75.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 75.2 +++ b/test/script/basic/JDK-8130853.js Tue Aug 11 12:49:01 2015 -0700 75.3 @@ -0,0 +1,89 @@ 75.4 +/* 75.5 + * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved. 75.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 75.7 + * 75.8 + * This code is free software; you can redistribute it and/or modify it 75.9 + * under the terms of the GNU General Public License version 2 only, as 75.10 + * published by the Free Software Foundation. 75.11 + * 75.12 + * This code is distributed in the hope that it will be useful, but WITHOUT 75.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 75.14 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 75.15 + * version 2 for more details (a copy is included in the LICENSE file that 75.16 + * accompanied this code). 75.17 + * 75.18 + * You should have received a copy of the GNU General Public License version 75.19 + * 2 along with this work; if not, write to the Free Software Foundation, 75.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 75.21 + * 75.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 75.23 + * or visit www.oracle.com if you need additional information or have any 75.24 + * questions. 75.25 + */ 75.26 + 75.27 +/** 75.28 + * JDK-8130853: Non-extensible global is not handled property 75.29 + * 75.30 + * @test 75.31 + * @run 75.32 + */ 75.33 + 75.34 +// don't allow extensions to global 75.35 +Object.preventExtensions(this); 75.36 +try { 75.37 + eval("var x = 34;"); 75.38 + throw new Error("should have thrown TypeError"); 75.39 +} catch (e) { 75.40 + if (! (e instanceof TypeError)) { 75.41 + throw e; 75.42 + } 75.43 +} 75.44 + 75.45 +try { 75.46 + eval("function func() {}"); 75.47 + throw new Error("should have thrown TypeError"); 75.48 +} catch (e) { 75.49 + if (! (e instanceof TypeError)) { 75.50 + throw e; 75.51 + } 75.52 +} 75.53 + 75.54 +function checkLoad(code) { 75.55 + try { 75.56 + load({ name: "test", script: code }); 75.57 + throw new Error("should have thrown TypeError for load: " + code); 75.58 + } catch (e) { 75.59 + if (! (e instanceof TypeError)) { 75.60 + throw e; 75.61 + } 75.62 + } 75.63 +} 75.64 + 75.65 +checkLoad("var y = 55"); 75.66 +checkLoad("function f() {}"); 75.67 + 75.68 +// check script engine eval 75.69 +var ScriptEngineManager = Java.type("javax.script.ScriptEngineManager"); 75.70 +var e = new ScriptEngineManager().getEngineByName("nashorn"); 75.71 +var global = e.eval("this"); 75.72 +e.eval("Object.preventExtensions(this);"); 75.73 +try { 75.74 + e.eval("var myVar = 33;"); 75.75 + throw new Error("should have thrown TypeError"); 75.76 +} catch (e) { 75.77 + if (! (e.cause.ecmaError instanceof global.TypeError)) { 75.78 + throw e; 75.79 + } 75.80 +} 75.81 + 75.82 +// Object.bindProperties on arbitrary non-extensible object 75.83 +var obj = {}; 75.84 +Object.preventExtensions(obj); 75.85 +try { 75.86 + Object.bindProperties(obj, { foo: 434 }); 75.87 + throw new Error("should have thrown TypeError"); 75.88 +} catch (e) { 75.89 + if (! (e instanceof TypeError)) { 75.90 + throw e; 75.91 + } 75.92 +}
76.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 76.2 +++ b/test/script/basic/JDK-8131039.js Tue Aug 11 12:49:01 2015 -0700 76.3 @@ -0,0 +1,35 @@ 76.4 +/* 76.5 + * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved. 76.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 76.7 + * 76.8 + * This code is free software; you can redistribute it and/or modify it 76.9 + * under the terms of the GNU General Public License version 2 only, as 76.10 + * published by the Free Software Foundation. 76.11 + * 76.12 + * This code is distributed in the hope that it will be useful, but WITHOUT 76.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 76.14 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 76.15 + * version 2 for more details (a copy is included in the LICENSE file that 76.16 + * accompanied this code). 76.17 + * 76.18 + * You should have received a copy of the GNU General Public License version 76.19 + * 2 along with this work; if not, write to the Free Software Foundation, 76.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 76.21 + * 76.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 76.23 + * or visit www.oracle.com if you need additional information or have any 76.24 + * questions. 76.25 + */ 76.26 + 76.27 +/** 76.28 + * JDK-8131039: after adding a function property to Object.prototype, JSON.parse with reviver function goes into infinite loop 76.29 + * 76.30 + * @test 76.31 + * @run 76.32 + */ 76.33 + 76.34 +Object.prototype.func = function() {} 76.35 + 76.36 +function identity(k, v) { return v }; 76.37 +var obj = JSON.parse('{\"name\" : \"nashorn\"}', identity); 76.38 +Assert.assertTrue(obj.name, "nashorn");
77.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 77.2 +++ b/test/script/basic/JDK-8131340.js Tue Aug 11 12:49:01 2015 -0700 77.3 @@ -0,0 +1,43 @@ 77.4 +/* 77.5 + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. 77.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 77.7 + * 77.8 + * This code is free software; you can redistribute it and/or modify it 77.9 + * under the terms of the GNU General Public License version 2 only, as 77.10 + * published by the Free Software Foundation. 77.11 + * 77.12 + * This code is distributed in the hope that it will be useful, but WITHOUT 77.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 77.14 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 77.15 + * version 2 for more details (a copy is included in the LICENSE file that 77.16 + * accompanied this code). 77.17 + * 77.18 + * You should have received a copy of the GNU General Public License version 77.19 + * 2 along with this work; if not, write to the Free Software Foundation, 77.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 77.21 + * 77.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 77.23 + * or visit www.oracle.com if you need additional information or have any 77.24 + * questions. 77.25 + */ 77.26 + 77.27 +/** 77.28 + * JDK-8131340: Varargs function is recompiled each time it is linked 77.29 + * 77.30 + * @test 77.31 + * @run 77.32 + */ 77.33 + 77.34 +// This is an indirect test. If repeated calls were to cause recompilation 77.35 +// this would trigger an assertion in RecompilableScriptFunctionData. 77.36 + 77.37 +function varargs() { 77.38 + return arguments; 77.39 +} 77.40 + 77.41 +varargs(1); 77.42 +varargs(2); 77.43 +varargs(3); 77.44 +varargs(4); 77.45 +varargs(5); 77.46 +varargs(6);
78.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 78.2 +++ b/test/script/basic/JDK-8131683.js Tue Aug 11 12:49:01 2015 -0700 78.3 @@ -0,0 +1,89 @@ 78.4 +/* 78.5 + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. 78.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 78.7 + * 78.8 + * This code is free software; you can redistribute it and/or modify it 78.9 + * under the terms of the GNU General Public License version 2 only, as 78.10 + * published by the Free Software Foundation. 78.11 + * 78.12 + * This code is distributed in the hope that it will be useful, but WITHOUT 78.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 78.14 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 78.15 + * version 2 for more details (a copy is included in the LICENSE file that 78.16 + * accompanied this code). 78.17 + * 78.18 + * You should have received a copy of the GNU General Public License version 78.19 + * 2 along with this work; if not, write to the Free Software Foundation, 78.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 78.21 + * 78.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 78.23 + * or visit www.oracle.com if you need additional information or have any 78.24 + * questions. 78.25 + */ 78.26 + 78.27 +/** 78.28 + * JDK-8131683: Delete fails over multiple scopes 78.29 + * 78.30 + * @test 78.31 + * @run 78.32 + */ 78.33 + 78.34 +a = 1; 78.35 +b = 2; 78.36 +c = 3; 78.37 + 78.38 +var A = 1; 78.39 +var B = 2; 78.40 +var C = 3; 78.41 +function D() {} 78.42 + 78.43 +print((function() { 78.44 + var x; // force creation of scope 78.45 + (function() { x; })(); 78.46 + return delete a; 78.47 +})()); 78.48 + 78.49 +print((function() { 78.50 + eval(""); 78.51 + return delete b; 78.52 +})()); 78.53 + 78.54 +print((function() { 78.55 + return eval("delete c"); 78.56 +})()); 78.57 + 78.58 +print((function() { 78.59 + eval("d = 4"); 78.60 + return eval("delete d"); 78.61 +})()); 78.62 + 78.63 +print(typeof a); 78.64 +print(typeof b); 78.65 +print(typeof c); 78.66 +print(typeof d); 78.67 + 78.68 +print((function() { 78.69 + var x; // force creation of scope 78.70 + (function() { x; })(); 78.71 + return delete A; 78.72 +})()); 78.73 + 78.74 +print((function() { 78.75 + eval(""); 78.76 + return delete B; 78.77 +})()); 78.78 + 78.79 +print((function() { 78.80 + return eval("delete C"); 78.81 +})()); 78.82 + 78.83 +print((function() { 78.84 + eval(""); 78.85 + return delete D; 78.86 +})()); 78.87 + 78.88 +print(typeof A); 78.89 +print(typeof B); 78.90 +print(typeof C); 78.91 +print(typeof D); 78.92 +
79.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 79.2 +++ b/test/script/basic/JDK-8131683.js.EXPECTED Tue Aug 11 12:49:01 2015 -0700 79.3 @@ -0,0 +1,16 @@ 79.4 +true 79.5 +true 79.6 +true 79.7 +true 79.8 +undefined 79.9 +undefined 79.10 +undefined 79.11 +undefined 79.12 +false 79.13 +false 79.14 +false 79.15 +false 79.16 +number 79.17 +number 79.18 +number 79.19 +function
80.1 --- a/test/script/basic/errors.js.EXPECTED Fri Aug 07 11:55:46 2015 -0700 80.2 +++ b/test/script/basic/errors.js.EXPECTED Tue Aug 11 12:49:01 2015 -0700 80.3 @@ -1,31 +1,31 @@ 80.4 -Error is a function 80.5 -EvalError is a function 80.6 -RangeError is a function 80.7 -ReferenceError is a function 80.8 -SyntaxError is a function 80.9 -TypeError is a function 80.10 -URIError is a function 80.11 -Error.arity 1 80.12 -EvalError.arity 1 80.13 -RangeError.arity 1 80.14 -ReferenceError.arity 1 80.15 -SyntaxError.arity 1 80.16 -TypeError.arity 1 80.17 -URIError.arity 1 80.18 -true 80.19 -my error 80.20 -Error 80.21 -thrown @ 49 80.22 -true 80.23 -ReferenceError 80.24 -"foo" is not defined 80.25 -true 80.26 -TypeError 80.27 -Cannot call undefined 80.28 -Error 80.29 -EvalError 80.30 -RangeError 80.31 -ReferenceError 80.32 -SyntaxError 80.33 -TypeError 80.34 -URIError 80.35 +Error is a function 80.36 +EvalError is a function 80.37 +RangeError is a function 80.38 +ReferenceError is a function 80.39 +SyntaxError is a function 80.40 +TypeError is a function 80.41 +URIError is a function 80.42 +Error.arity 1 80.43 +EvalError.arity 1 80.44 +RangeError.arity 1 80.45 +ReferenceError.arity 1 80.46 +SyntaxError.arity 1 80.47 +TypeError.arity 1 80.48 +URIError.arity 1 80.49 +true 80.50 +my error 80.51 +Error 80.52 +thrown @ 49 80.53 +true 80.54 +ReferenceError 80.55 +"foo" is not defined 80.56 +true 80.57 +TypeError 80.58 +Cannot call "foo_method" that has undefined value 80.59 +Error 80.60 +EvalError 80.61 +RangeError 80.62 +ReferenceError 80.63 +SyntaxError 80.64 +TypeError 80.65 +URIError
81.1 --- a/test/script/currently-failing/gettersetter.js Fri Aug 07 11:55:46 2015 -0700 81.2 +++ b/test/script/currently-failing/gettersetter.js Tue Aug 11 12:49:01 2015 -0700 81.3 @@ -1,5 +1,5 @@ 81.4 /* 81.5 - * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved. 81.6 + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. 81.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 81.8 * 81.9 * This code is free software; you can redistribute it and/or modify it
82.1 --- a/test/script/currently-failing/property_delete.js Fri Aug 07 11:55:46 2015 -0700 82.2 +++ b/test/script/currently-failing/property_delete.js Tue Aug 11 12:49:01 2015 -0700 82.3 @@ -1,5 +1,5 @@ 82.4 /* 82.5 - * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved. 82.6 + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. 82.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 82.8 * 82.9 * This code is free software; you can redistribute it and/or modify it
83.1 --- a/test/script/maptests/builtins.js Fri Aug 07 11:55:46 2015 -0700 83.2 +++ b/test/script/maptests/builtins.js Tue Aug 11 12:49:01 2015 -0700 83.3 @@ -1,5 +1,5 @@ 83.4 /* 83.5 - * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved. 83.6 + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. 83.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 83.8 * 83.9 * This code is free software; you can redistribute it and/or modify it
84.1 --- a/test/script/maptests/constructor.js Fri Aug 07 11:55:46 2015 -0700 84.2 +++ b/test/script/maptests/constructor.js Tue Aug 11 12:49:01 2015 -0700 84.3 @@ -1,5 +1,5 @@ 84.4 /* 84.5 - * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved. 84.6 + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. 84.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 84.8 * 84.9 * This code is free software; you can redistribute it and/or modify it
85.1 --- a/test/script/maptests/maputil.js Fri Aug 07 11:55:46 2015 -0700 85.2 +++ b/test/script/maptests/maputil.js Tue Aug 11 12:49:01 2015 -0700 85.3 @@ -1,5 +1,5 @@ 85.4 /* 85.5 - * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved. 85.6 + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. 85.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 85.8 * 85.9 * This code is free software; you can redistribute it and/or modify it
86.1 --- a/test/script/maptests/object_create.js Fri Aug 07 11:55:46 2015 -0700 86.2 +++ b/test/script/maptests/object_create.js Tue Aug 11 12:49:01 2015 -0700 86.3 @@ -1,5 +1,5 @@ 86.4 /* 86.5 - * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved. 86.6 + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. 86.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 86.8 * 86.9 * This code is free software; you can redistribute it and/or modify it
87.1 --- a/test/script/maptests/object_literals.js Fri Aug 07 11:55:46 2015 -0700 87.2 +++ b/test/script/maptests/object_literals.js Tue Aug 11 12:49:01 2015 -0700 87.3 @@ -1,5 +1,5 @@ 87.4 /* 87.5 - * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved. 87.6 + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. 87.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 87.8 * 87.9 * This code is free software; you can redistribute it and/or modify it
88.1 --- a/test/script/maptests/point.js Fri Aug 07 11:55:46 2015 -0700 88.2 +++ b/test/script/maptests/point.js Tue Aug 11 12:49:01 2015 -0700 88.3 @@ -1,5 +1,5 @@ 88.4 /* 88.5 - * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved. 88.6 + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. 88.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 88.8 * 88.9 * This code is free software; you can redistribute it and/or modify it
89.1 --- a/test/script/maptests/property_add.js Fri Aug 07 11:55:46 2015 -0700 89.2 +++ b/test/script/maptests/property_add.js Tue Aug 11 12:49:01 2015 -0700 89.3 @@ -1,5 +1,5 @@ 89.4 /* 89.5 - * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved. 89.6 + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. 89.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 89.8 * 89.9 * This code is free software; you can redistribute it and/or modify it
90.1 --- a/test/script/maptests/proto.js Fri Aug 07 11:55:46 2015 -0700 90.2 +++ b/test/script/maptests/proto.js Tue Aug 11 12:49:01 2015 -0700 90.3 @@ -1,5 +1,5 @@ 90.4 /* 90.5 - * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved. 90.6 + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. 90.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 90.8 * 90.9 * This code is free software; you can redistribute it and/or modify it
91.1 --- a/test/script/sandbox/safeprops.js Fri Aug 07 11:55:46 2015 -0700 91.2 +++ b/test/script/sandbox/safeprops.js Tue Aug 11 12:49:01 2015 -0700 91.3 @@ -1,5 +1,5 @@ 91.4 /* 91.5 - * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved. 91.6 + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. 91.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 91.8 * 91.9 * This code is free software; you can redistribute it and/or modify it
92.1 --- a/test/src/jdk/nashorn/test/models/NullProvider.java Fri Aug 07 11:55:46 2015 -0700 92.2 +++ b/test/src/jdk/nashorn/test/models/NullProvider.java Tue Aug 11 12:49:01 2015 -0700 92.3 @@ -1,5 +1,5 @@ 92.4 /* 92.5 - * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved. 92.6 + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. 92.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 92.8 * 92.9 * This code is free software; you can redistribute it and/or modify it