Merge

Tue, 11 Aug 2015 12:49:01 -0700

author
lana
date
Tue, 11 Aug 2015 12:49:01 -0700
changeset 1514
645ffd6ff142
parent 1498
3be31159ea48
parent 1513
9d2a2e4b4aad
child 1516
d71decf8767b

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

mercurial