# HG changeset patch # User jlaskey # Date 1370447661 10800 # Node ID 9fcb9ceceacbce9e0a896523d0b2e5b62029a011 # Parent 94482f6cc1ac4bf063845f71f4af6a25809cee1f# Parent dad5bfcd7f838089d7f0c17f5aa075be63e1f8c4 Merge diff -r 94482f6cc1ac -r 9fcb9ceceacb nashorn/src/jdk/nashorn/internal/codegen/CodeGenerator.java --- a/nashorn/src/jdk/nashorn/internal/codegen/CodeGenerator.java Wed Jun 05 13:33:33 2013 +0530 +++ b/nashorn/src/jdk/nashorn/internal/codegen/CodeGenerator.java Wed Jun 05 12:54:21 2013 -0300 @@ -1326,8 +1326,7 @@ @Override public boolean enterObjectNode(final ObjectNode objectNode) { - final List elements = objectNode.getElements(); - final int size = elements.size(); + final List elements = objectNode.getElements(); final List keys = new ArrayList<>(); final List symbols = new ArrayList<>(); @@ -1335,8 +1334,7 @@ boolean hasGettersSetters = false; - for (int i = 0; i < size; i++) { - final PropertyNode propertyNode = (PropertyNode)elements.get(i); + for (PropertyNode propertyNode: elements) { final Node value = propertyNode.getValue(); final String key = propertyNode.getKeyName(); final Symbol symbol = value == null ? null : propertyNode.getSymbol(); diff -r 94482f6cc1ac -r 9fcb9ceceacb nashorn/src/jdk/nashorn/internal/codegen/Lower.java --- a/nashorn/src/jdk/nashorn/internal/codegen/Lower.java Wed Jun 05 13:33:33 2013 +0530 +++ b/nashorn/src/jdk/nashorn/internal/codegen/Lower.java Wed Jun 05 12:54:21 2013 -0300 @@ -32,7 +32,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; - import jdk.nashorn.internal.ir.BaseNode; import jdk.nashorn.internal.ir.BinaryNode; import jdk.nashorn.internal.ir.Block; @@ -258,7 +257,7 @@ return throwNode; } - private static Node ensureUniqueNamesIn(final LexicalContext lc, final Node node) { + private static Node ensureUniqueNamesIn(final Node node) { return node.accept(new NodeVisitor(new LexicalContext()) { @Override public Node leaveFunctionNode(final FunctionNode functionNode) { @@ -273,10 +272,10 @@ }); } - private static List copyFinally(final LexicalContext lc, final Block finallyBody) { + private static List copyFinally(final Block finallyBody) { final List newStatements = new ArrayList<>(); for (final Statement statement : finallyBody.getStatements()) { - newStatements.add((Statement)ensureUniqueNamesIn(lc, statement)); + newStatements.add((Statement)ensureUniqueNamesIn(statement)); if (statement.hasTerminalFlags()) { return newStatements; } @@ -340,7 +339,7 @@ @Override public Node leaveThrowNode(final ThrowNode throwNode) { if (rethrows.contains(throwNode)) { - final List newStatements = copyFinally(lc, finallyBody); + final List newStatements = copyFinally(finallyBody); if (!isTerminal(newStatements)) { newStatements.add(throwNode); } @@ -374,7 +373,7 @@ resultNode = null; } - newStatements.addAll(copyFinally(lc, finallyBody)); + newStatements.addAll(copyFinally(finallyBody)); if (!isTerminal(newStatements)) { newStatements.add(expr == null ? returnNode : returnNode.setExpression(resultNode)); } @@ -384,7 +383,7 @@ private Node copy(final Statement endpoint, final Node targetNode) { if (!insideTry.contains(targetNode)) { - final List newStatements = copyFinally(lc, finallyBody); + final List newStatements = copyFinally(finallyBody); if (!isTerminal(newStatements)) { newStatements.add(endpoint); } @@ -550,7 +549,7 @@ final FunctionNode currentFunction = lc.getCurrentFunction(); return callNode.setEvalArgs( new CallNode.EvalArgs( - ensureUniqueNamesIn(lc, args.get(0)).accept(this), + ensureUniqueNamesIn(args.get(0)).accept(this), compilerConstant(THIS), evalLocation(callee), currentFunction.isStrict())); diff -r 94482f6cc1ac -r 9fcb9ceceacb nashorn/src/jdk/nashorn/internal/codegen/RuntimeCallSite.java --- a/nashorn/src/jdk/nashorn/internal/codegen/RuntimeCallSite.java Wed Jun 05 13:33:33 2013 +0530 +++ b/nashorn/src/jdk/nashorn/internal/codegen/RuntimeCallSite.java Wed Jun 05 12:54:21 2013 -0300 @@ -41,10 +41,10 @@ import jdk.nashorn.internal.codegen.types.Type; import jdk.nashorn.internal.ir.RuntimeNode; import jdk.nashorn.internal.ir.RuntimeNode.Request; +import jdk.nashorn.internal.lookup.Lookup; +import jdk.nashorn.internal.lookup.MethodHandleFactory; import jdk.nashorn.internal.runtime.ScriptRuntime; import jdk.nashorn.internal.runtime.linker.Bootstrap; -import jdk.nashorn.internal.lookup.Lookup; -import jdk.nashorn.internal.lookup.MethodHandleFactory; /** * Optimistic call site that assumes its Object arguments to be of a boxed type. @@ -333,6 +333,7 @@ * * Do not call directly * + * @param name current name (with type) of runtime call at the call site * @return next wider specialization method for this RuntimeCallSite */ public MethodHandle next(final String name) { diff -r 94482f6cc1ac -r 9fcb9ceceacb nashorn/src/jdk/nashorn/internal/ir/BlockLexicalContext.java --- a/nashorn/src/jdk/nashorn/internal/ir/BlockLexicalContext.java Wed Jun 05 13:33:33 2013 +0530 +++ b/nashorn/src/jdk/nashorn/internal/ir/BlockLexicalContext.java Wed Jun 05 12:54:21 2013 -0300 @@ -63,7 +63,6 @@ return sstack.pop(); } - @SuppressWarnings("unchecked") @Override public T pop(final T node) { T expected = node; diff -r 94482f6cc1ac -r 9fcb9ceceacb nashorn/src/jdk/nashorn/internal/ir/FunctionNode.java --- a/nashorn/src/jdk/nashorn/internal/ir/FunctionNode.java Wed Jun 05 13:33:33 2013 +0530 +++ b/nashorn/src/jdk/nashorn/internal/ir/FunctionNode.java Wed Jun 05 12:54:21 2013 -0300 @@ -30,7 +30,6 @@ import java.util.HashSet; import java.util.List; import java.util.Set; - import jdk.nashorn.internal.codegen.CompileUnit; import jdk.nashorn.internal.codegen.Compiler; import jdk.nashorn.internal.codegen.CompilerConstants; @@ -385,7 +384,7 @@ * @return function node or a new one if state was changed */ public FunctionNode setState(final LexicalContext lc, final CompilationState state) { - if (this.compilationState.equals(state)) { + if (this.compilationState.contains(state)) { return this; } final EnumSet newState = EnumSet.copyOf(this.compilationState); diff -r 94482f6cc1ac -r 9fcb9ceceacb nashorn/src/jdk/nashorn/internal/ir/ObjectNode.java --- a/nashorn/src/jdk/nashorn/internal/ir/ObjectNode.java Wed Jun 05 13:33:33 2013 +0530 +++ b/nashorn/src/jdk/nashorn/internal/ir/ObjectNode.java Wed Jun 05 12:54:21 2013 -0300 @@ -27,7 +27,6 @@ import java.util.Collections; import java.util.List; - import jdk.nashorn.internal.ir.annotations.Immutable; import jdk.nashorn.internal.ir.visitor.NodeVisitor; @@ -38,7 +37,7 @@ public final class ObjectNode extends Node { /** Literal elements. */ - private final List elements; + private final List elements; /** * Constructor @@ -47,12 +46,12 @@ * @param finish finish * @param elements the elements used to initialize this ObjectNode */ - public ObjectNode(final long token, final int finish, final List elements) { + public ObjectNode(final long token, final int finish, final List elements) { super(token, finish); this.elements = elements; } - private ObjectNode(final ObjectNode objectNode, final List elements) { + private ObjectNode(final ObjectNode objectNode, final List elements) { super(objectNode); this.elements = elements; } @@ -60,7 +59,7 @@ @Override public Node accept(final NodeVisitor visitor) { if (visitor.enterObjectNode(this)) { - return visitor.leaveObjectNode(setElements(Node.accept(visitor, Node.class, elements))); + return visitor.leaveObjectNode(setElements(Node.accept(visitor, PropertyNode.class, elements))); } return this; @@ -92,11 +91,11 @@ * Get the elements of this literal node * @return a list of elements */ - public List getElements() { + public List getElements() { return Collections.unmodifiableList(elements); } - private ObjectNode setElements(final List elements) { + private ObjectNode setElements(final List elements) { if (this.elements == elements) { return this; } diff -r 94482f6cc1ac -r 9fcb9ceceacb nashorn/src/jdk/nashorn/internal/objects/GenericPropertyDescriptor.java --- a/nashorn/src/jdk/nashorn/internal/objects/GenericPropertyDescriptor.java Wed Jun 05 13:33:33 2013 +0530 +++ b/nashorn/src/jdk/nashorn/internal/objects/GenericPropertyDescriptor.java Wed Jun 05 12:54:21 2013 -0300 @@ -150,11 +150,11 @@ if (this == obj) { return true; } - if (!(obj instanceof AccessorPropertyDescriptor)) { + if (!(obj instanceof GenericPropertyDescriptor)) { return false; } - final AccessorPropertyDescriptor other = (AccessorPropertyDescriptor)obj; + final GenericPropertyDescriptor other = (GenericPropertyDescriptor)obj; return ScriptRuntime.sameValue(configurable, other.configurable) && ScriptRuntime.sameValue(enumerable, other.enumerable); } diff -r 94482f6cc1ac -r 9fcb9ceceacb nashorn/src/jdk/nashorn/internal/objects/NativeArray.java --- a/nashorn/src/jdk/nashorn/internal/objects/NativeArray.java Wed Jun 05 13:33:33 2013 +0530 +++ b/nashorn/src/jdk/nashorn/internal/objects/NativeArray.java Wed Jun 05 12:54:21 2013 -0300 @@ -75,7 +75,7 @@ private static final MethodHandle FILTER_CALLBACK_INVOKER = createIteratorCallbackInvoker(boolean.class); private static final MethodHandle REDUCE_CALLBACK_INVOKER = Bootstrap.createDynamicInvoker("dyn:call", Object.class, - Object.class, Undefined.class, Object.class, Object.class, int.class, Object.class); + Object.class, Undefined.class, Object.class, Object.class, long.class, Object.class); private static final MethodHandle CALL_CMP = Bootstrap.createDynamicInvoker("dyn:call", double.class, ScriptFunction.class, Object.class, Object.class, Object.class); @@ -1086,7 +1086,7 @@ private static boolean applyEvery(final Object self, final Object callbackfn, final Object thisArg) { return new IteratorAction(Global.toObject(self), callbackfn, thisArg, true) { @Override - protected boolean forEach(final Object val, final int i) throws Throwable { + protected boolean forEach(final Object val, final long i) throws Throwable { return (result = (boolean)EVERY_CALLBACK_INVOKER.invokeExact(callbackfn, thisArg, val, i, self)); } }.apply(); @@ -1104,7 +1104,7 @@ public static Object some(final Object self, final Object callbackfn, final Object thisArg) { return new IteratorAction(Global.toObject(self), callbackfn, thisArg, false) { @Override - protected boolean forEach(final Object val, final int i) throws Throwable { + protected boolean forEach(final Object val, final long i) throws Throwable { return !(result = (boolean)SOME_CALLBACK_INVOKER.invokeExact(callbackfn, thisArg, val, i, self)); } }.apply(); @@ -1122,7 +1122,7 @@ public static Object forEach(final Object self, final Object callbackfn, final Object thisArg) { return new IteratorAction(Global.toObject(self), callbackfn, thisArg, ScriptRuntime.UNDEFINED) { @Override - protected boolean forEach(final Object val, final int i) throws Throwable { + protected boolean forEach(final Object val, final long i) throws Throwable { FOREACH_CALLBACK_INVOKER.invokeExact(callbackfn, thisArg, val, i, self); return true; } @@ -1141,9 +1141,9 @@ public static Object map(final Object self, final Object callbackfn, final Object thisArg) { return new IteratorAction(Global.toObject(self), callbackfn, thisArg, null) { @Override - protected boolean forEach(final Object val, final int i) throws Throwable { + protected boolean forEach(final Object val, final long i) throws Throwable { final Object r = MAP_CALLBACK_INVOKER.invokeExact(callbackfn, thisArg, val, i, self); - result.defineOwnProperty(index, r); + result.defineOwnProperty((int)index, r); return true; } @@ -1167,12 +1167,12 @@ @Function(attributes = Attribute.NOT_ENUMERABLE, arity = 1) public static Object filter(final Object self, final Object callbackfn, final Object thisArg) { return new IteratorAction(Global.toObject(self), callbackfn, thisArg, new NativeArray()) { - private int to = 0; + private long to = 0; @Override - protected boolean forEach(final Object val, final int i) throws Throwable { + protected boolean forEach(final Object val, final long i) throws Throwable { if ((boolean)FILTER_CALLBACK_INVOKER.invokeExact(callbackfn, thisArg, val, i, self)) { - result.defineOwnProperty(to++, val); + result.defineOwnProperty((int)(to++), val); } return true; } @@ -1200,7 +1200,7 @@ //if initial value is ScriptRuntime.UNDEFINED - step forward once. return new IteratorAction(Global.toObject(self), callbackfn, ScriptRuntime.UNDEFINED, initialValue, iter) { @Override - protected boolean forEach(final Object val, final int i) throws Throwable { + protected boolean forEach(final Object val, final long i) throws Throwable { // TODO: why can't I declare the second arg as Undefined.class? result = REDUCE_CALLBACK_INVOKER.invokeExact(callbackfn, ScriptRuntime.UNDEFINED, result, val, i, self); return true; @@ -1258,7 +1258,7 @@ private static MethodHandle createIteratorCallbackInvoker(final Class rtype) { return Bootstrap.createDynamicInvoker("dyn:call", rtype, Object.class, Object.class, Object.class, - int.class, Object.class); + long.class, Object.class); } } diff -r 94482f6cc1ac -r 9fcb9ceceacb nashorn/src/jdk/nashorn/internal/objects/NativeMath.java --- a/nashorn/src/jdk/nashorn/internal/objects/NativeMath.java Wed Jun 05 13:33:33 2013 +0530 +++ b/nashorn/src/jdk/nashorn/internal/objects/NativeMath.java Wed Jun 05 12:54:21 2013 -0300 @@ -31,7 +31,6 @@ import jdk.nashorn.internal.objects.annotations.ScriptClass; import jdk.nashorn.internal.objects.annotations.SpecializedFunction; import jdk.nashorn.internal.objects.annotations.Where; -import jdk.nashorn.internal.runtime.GlobalFunctions; import jdk.nashorn.internal.runtime.JSType; import jdk.nashorn.internal.runtime.ScriptObject; diff -r 94482f6cc1ac -r 9fcb9ceceacb nashorn/src/jdk/nashorn/internal/parser/JSONParser.java --- a/nashorn/src/jdk/nashorn/internal/parser/JSONParser.java Wed Jun 05 13:33:33 2013 +0530 +++ b/nashorn/src/jdk/nashorn/internal/parser/JSONParser.java Wed Jun 05 12:54:21 2013 -0300 @@ -282,7 +282,7 @@ next(); // Prepare to accumulate elements. - final List elements = new ArrayList<>(); + final List elements = new ArrayList<>(); // Create a block for the object literal. loop: @@ -298,7 +298,7 @@ default: // Get and add the next property. - final Node property = propertyAssignment(); + final PropertyNode property = propertyAssignment(); elements.add(property); // Comma between property assigments is mandatory in JSON. @@ -317,7 +317,7 @@ * Parse a property assignment from the token stream * @return the property assignment as a Node */ - private Node propertyAssignment() { + private PropertyNode propertyAssignment() { // Capture firstToken. final long propertyToken = token; LiteralNode name = null; diff -r 94482f6cc1ac -r 9fcb9ceceacb nashorn/src/jdk/nashorn/internal/parser/Parser.java --- a/nashorn/src/jdk/nashorn/internal/parser/Parser.java Wed Jun 05 13:33:33 2013 +0530 +++ b/nashorn/src/jdk/nashorn/internal/parser/Parser.java Wed Jun 05 12:54:21 2013 -0300 @@ -59,7 +59,6 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; - import jdk.nashorn.internal.codegen.CompilerConstants; import jdk.nashorn.internal.codegen.Namespace; import jdk.nashorn.internal.ir.AccessNode; @@ -2028,7 +2027,7 @@ } } - return new ObjectNode(objectToken, finish, new ArrayList(map.values())); + return new ObjectNode(objectToken, finish, new ArrayList<>(map.values())); } /** diff -r 94482f6cc1ac -r 9fcb9ceceacb nashorn/src/jdk/nashorn/internal/runtime/Context.java --- a/nashorn/src/jdk/nashorn/internal/runtime/Context.java Wed Jun 05 13:33:33 2013 +0530 +++ b/nashorn/src/jdk/nashorn/internal/runtime/Context.java Wed Jun 05 12:54:21 2013 -0300 @@ -501,7 +501,7 @@ * * @throws IOException if source cannot be found or loaded */ - public Object loadWithNewGlobal(final Object from) throws IOException, RuntimeException { + public Object loadWithNewGlobal(final Object from) throws IOException { final ScriptObject oldGlobal = getGlobalTrusted(); final ScriptObject newGlobal = AccessController.doPrivileged(new PrivilegedAction() { @Override diff -r 94482f6cc1ac -r 9fcb9ceceacb nashorn/src/jdk/nashorn/internal/runtime/JSONFunctions.java --- a/nashorn/src/jdk/nashorn/internal/runtime/JSONFunctions.java Wed Jun 05 13:33:33 2013 +0530 +++ b/nashorn/src/jdk/nashorn/internal/runtime/JSONFunctions.java Wed Jun 05 12:54:21 2013 -0300 @@ -25,9 +25,11 @@ package jdk.nashorn.internal.runtime; +import static jdk.nashorn.internal.runtime.arrays.ArrayIndex.getArrayIndexNoThrow; +import static jdk.nashorn.internal.runtime.arrays.ArrayIndex.isValidArrayIndex; + import java.lang.invoke.MethodHandle; import java.util.Iterator; -import java.util.List; import jdk.nashorn.internal.ir.LiteralNode; import jdk.nashorn.internal.ir.Node; import jdk.nashorn.internal.ir.ObjectNode; @@ -36,8 +38,6 @@ import jdk.nashorn.internal.parser.JSONParser; import jdk.nashorn.internal.parser.TokenType; import jdk.nashorn.internal.runtime.linker.Bootstrap; -import static jdk.nashorn.internal.runtime.arrays.ArrayIndex.getArrayIndexNoThrow; -import static jdk.nashorn.internal.runtime.arrays.ArrayIndex.isValidArrayIndex; /** * Utilities used by "JSON" object implementation. @@ -171,10 +171,8 @@ final ObjectNode objNode = (ObjectNode) node; final ScriptObject object = ((GlobalObject)global).newObject(); final boolean strict = global.isStrictContext(); - final List elements = objNode.getElements(); - for (final Node elem : elements) { - final PropertyNode pNode = (PropertyNode) elem; + for (final PropertyNode pNode: objNode.getElements()) { final Node valueNode = pNode.getValue(); final String name = pNode.getKeyName(); diff -r 94482f6cc1ac -r 9fcb9ceceacb nashorn/src/jdk/nashorn/internal/runtime/ListAdapter.java --- a/nashorn/src/jdk/nashorn/internal/runtime/ListAdapter.java Wed Jun 05 13:33:33 2013 +0530 +++ b/nashorn/src/jdk/nashorn/internal/runtime/ListAdapter.java Wed Jun 05 12:54:21 2013 -0300 @@ -15,10 +15,11 @@ * as dequeues, it's still slightly more efficient to be able to translate dequeue operations into pushes, pops, shifts, * and unshifts, than to blindly translate all list's add/remove operations into splices. Also, it is conceivable that a * custom script object that implements an Array-like API can have a background data representation that is optimized - * for dequeue-like access. Note that with ECMAScript arrays, {@code push} and {@pop} operate at the end of the array, - * while in Java {@code Deque} they operate on the front of the queue and as such the Java dequeue {@link #push(Object)} - * and {@link #pop()} operations will translate to {@code unshift} and {@code shift} script operations respectively, - * while {@link #addLast(Object)} and {@link #removeLast()} will translate to {@code push} and {@code pop}. + * for dequeue-like access. Note that with ECMAScript arrays, {@code push} and {@code pop} operate at the end of the + * array, while in Java {@code Deque} they operate on the front of the queue and as such the Java dequeue + * {@link #push(Object)} and {@link #pop()} operations will translate to {@code unshift} and {@code shift} script + * operations respectively, while {@link #addLast(Object)} and {@link #removeLast()} will translate to {@code push} and + * {@code pop}. */ public class ListAdapter extends AbstractList implements RandomAccess, Deque { // These add to the back and front of the list diff -r 94482f6cc1ac -r 9fcb9ceceacb nashorn/src/jdk/nashorn/internal/runtime/ScriptingFunctions.java --- a/nashorn/src/jdk/nashorn/internal/runtime/ScriptingFunctions.java Wed Jun 05 13:33:33 2013 +0530 +++ b/nashorn/src/jdk/nashorn/internal/runtime/ScriptingFunctions.java Wed Jun 05 12:54:21 2013 -0300 @@ -32,9 +32,8 @@ import java.io.BufferedReader; import java.io.File; import java.io.IOException; -import java.io.InputStream; import java.io.InputStreamReader; -import java.io.OutputStream; +import java.io.OutputStreamWriter; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; import java.util.Map; @@ -165,36 +164,61 @@ // Start the process. final Process process = processBuilder.start(); + final IOException exception[] = new IOException[2]; + + // Collect output. + final StringBuilder outBuffer = new StringBuilder(); + Thread outThread = new Thread(new Runnable() { + @Override + public void run() { + char buffer[] = new char[1024]; + try (final InputStreamReader inputStream = new InputStreamReader(process.getInputStream())) { + for (int length; (length = inputStream.read(buffer, 0, buffer.length)) != -1; ) { + outBuffer.append(buffer, 0, length); + } + } catch (IOException ex) { + exception[0] = ex; + } + } + }, "$EXEC output"); + + // Collect errors. + final StringBuilder errBuffer = new StringBuilder(); + Thread errThread = new Thread(new Runnable() { + @Override + public void run() { + char buffer[] = new char[1024]; + try (final InputStreamReader inputStream = new InputStreamReader(process.getErrorStream())) { + for (int length; (length = inputStream.read(buffer, 0, buffer.length)) != -1; ) { + outBuffer.append(buffer, 0, length); + } + } catch (IOException ex) { + exception[1] = ex; + } + } + }, "$EXEC error"); + + // Start gathering output. + outThread.start(); + errThread.start(); // If input is present, pass on to process. - try (OutputStream outputStream = process.getOutputStream()) { + try (OutputStreamWriter outputStream = new OutputStreamWriter(process.getOutputStream())) { if (input != UNDEFINED) { - outputStream.write(JSType.toString(input).getBytes()); + String in = JSType.toString(input); + outputStream.write(in, 0, in.length()); } + } catch (IOException ex) { + // Process was not expecting input. May be normal state of affairs. } // Wait for the process to complete. final int exit = process.waitFor(); + outThread.join(); + errThread.join(); - // Collect output. - String out; - try (InputStream inputStream = process.getInputStream()) { - final StringBuilder outBuffer = new StringBuilder(); - for (int ch; (ch = inputStream.read()) != -1; ) { - outBuffer.append((char)ch); - } - out = outBuffer.toString(); - } - - // Collect errors. - String err; - try (InputStream errorStream = process.getErrorStream()) { - final StringBuilder errBuffer = new StringBuilder(); - for (int ch; (ch = errorStream.read()) != -1; ) { - errBuffer.append((char)ch); - } - err = errBuffer.toString(); - } + final String out = outBuffer.toString(); + final String err = errBuffer.toString(); // Set globals for secondary results. final boolean isStrict = global.isStrictContext(); @@ -202,6 +226,13 @@ global.set(ERR_NAME, err, isStrict); global.set(EXIT_NAME, exit, isStrict); + // Propagate exception if present. + for (int i = 0; i < exception.length; i++) { + if (exception[i] != null) { + throw exception[i]; + } + } + // Return the result from stdout. return out; } diff -r 94482f6cc1ac -r 9fcb9ceceacb nashorn/src/jdk/nashorn/internal/runtime/arrays/ArrayIterator.java --- a/nashorn/src/jdk/nashorn/internal/runtime/arrays/ArrayIterator.java Wed Jun 05 13:33:33 2013 +0530 +++ b/nashorn/src/jdk/nashorn/internal/runtime/arrays/ArrayIterator.java Wed Jun 05 12:54:21 2013 -0300 @@ -36,7 +36,7 @@ protected final ScriptObject array; /** length of array */ - protected final int length; + protected final long length; /** * Constructor @@ -46,7 +46,7 @@ protected ArrayIterator(final ScriptObject array, final boolean includeUndefined) { super(includeUndefined); this.array = array; - this.length = (int) array.getArray().length(); + this.length = array.getArray().length(); } /** @@ -63,7 +63,7 @@ } @Override - public int getLength() { + public long getLength() { return length; } diff -r 94482f6cc1ac -r 9fcb9ceceacb nashorn/src/jdk/nashorn/internal/runtime/arrays/ArrayLikeIterator.java --- a/nashorn/src/jdk/nashorn/internal/runtime/arrays/ArrayLikeIterator.java Wed Jun 05 13:33:33 2013 +0530 +++ b/nashorn/src/jdk/nashorn/internal/runtime/arrays/ArrayLikeIterator.java Wed Jun 05 12:54:21 2013 -0300 @@ -38,7 +38,7 @@ abstract public class ArrayLikeIterator implements Iterator { /** current element index in iteration */ - protected int index; + protected long index; /** should undefined elements be included in the iteration? */ protected final boolean includeUndefined; @@ -65,7 +65,7 @@ * Go the the next valid element index of the iterator * @return next index */ - protected int bumpIndex() { + protected long bumpIndex() { return index++; } @@ -73,7 +73,7 @@ * Return the next valid element index of the iterator * @return next index */ - public int nextIndex() { + public long nextIndex() { return index; } @@ -86,7 +86,7 @@ * Get the length of the iteration * @return length */ - public abstract int getLength(); + public abstract long getLength(); /** * ArrayLikeIterator factory diff -r 94482f6cc1ac -r 9fcb9ceceacb nashorn/src/jdk/nashorn/internal/runtime/arrays/EmptyArrayLikeIterator.java --- a/nashorn/src/jdk/nashorn/internal/runtime/arrays/EmptyArrayLikeIterator.java Wed Jun 05 13:33:33 2013 +0530 +++ b/nashorn/src/jdk/nashorn/internal/runtime/arrays/EmptyArrayLikeIterator.java Wed Jun 05 12:54:21 2013 -0300 @@ -47,7 +47,7 @@ } @Override - public int getLength() { + public long getLength() { return 0; } } diff -r 94482f6cc1ac -r 9fcb9ceceacb nashorn/src/jdk/nashorn/internal/runtime/arrays/IteratorAction.java --- a/nashorn/src/jdk/nashorn/internal/runtime/arrays/IteratorAction.java Wed Jun 05 13:33:33 2013 +0530 +++ b/nashorn/src/jdk/nashorn/internal/runtime/arrays/IteratorAction.java Wed Jun 05 12:54:21 2013 -0300 @@ -49,7 +49,7 @@ protected T result; /** Current array index of iterator */ - protected int index; + protected long index; /** Iterator object */ private final ArrayLikeIterator iter; @@ -134,6 +134,6 @@ * * @throws Throwable if invocation throws an exception/error */ - protected abstract boolean forEach(final Object val, final int i) throws Throwable; + protected abstract boolean forEach(final Object val, final long i) throws Throwable; } diff -r 94482f6cc1ac -r 9fcb9ceceacb nashorn/src/jdk/nashorn/internal/runtime/arrays/MapIterator.java --- a/nashorn/src/jdk/nashorn/internal/runtime/arrays/MapIterator.java Wed Jun 05 13:33:33 2013 +0530 +++ b/nashorn/src/jdk/nashorn/internal/runtime/arrays/MapIterator.java Wed Jun 05 12:54:21 2013 -0300 @@ -49,8 +49,8 @@ } @Override - public int getLength() { - return (int) length; + public long getLength() { + return length; } @Override diff -r 94482f6cc1ac -r 9fcb9ceceacb nashorn/src/jdk/nashorn/internal/runtime/arrays/ReverseArrayIterator.java --- a/nashorn/src/jdk/nashorn/internal/runtime/arrays/ReverseArrayIterator.java Wed Jun 05 13:33:33 2013 +0530 +++ b/nashorn/src/jdk/nashorn/internal/runtime/arrays/ReverseArrayIterator.java Wed Jun 05 12:54:21 2013 -0300 @@ -39,7 +39,7 @@ */ public ReverseArrayIterator(final ScriptObject array, final boolean includeUndefined) { super(array, includeUndefined); - this.index = (int) (array.getArray().length() - 1); + this.index = array.getArray().length() - 1; } @Override @@ -53,7 +53,7 @@ } @Override - protected int bumpIndex() { + protected long bumpIndex() { return index--; } } diff -r 94482f6cc1ac -r 9fcb9ceceacb nashorn/src/jdk/nashorn/internal/runtime/arrays/ReverseMapIterator.java --- a/nashorn/src/jdk/nashorn/internal/runtime/arrays/ReverseMapIterator.java Wed Jun 05 13:33:33 2013 +0530 +++ b/nashorn/src/jdk/nashorn/internal/runtime/arrays/ReverseMapIterator.java Wed Jun 05 12:54:21 2013 -0300 @@ -35,7 +35,7 @@ ReverseMapIterator(final ScriptObject obj, final boolean includeUndefined) { super(obj, includeUndefined); - this.index = JSType.toInt32(obj.getLength()) - 1; + this.index = JSType.toUint32(obj.getLength()) - 1; } @Override @@ -49,7 +49,7 @@ } @Override - protected int bumpIndex() { + protected long bumpIndex() { return index--; } } diff -r 94482f6cc1ac -r 9fcb9ceceacb nashorn/src/jdk/nashorn/internal/runtime/regexp/joni/Parser.java --- a/nashorn/src/jdk/nashorn/internal/runtime/regexp/joni/Parser.java Wed Jun 05 13:33:33 2013 +0530 +++ b/nashorn/src/jdk/nashorn/internal/runtime/regexp/joni/Parser.java Wed Jun 05 12:54:21 2013 -0300 @@ -23,23 +23,23 @@ import static jdk.nashorn.internal.runtime.regexp.joni.Option.isDontCaptureGroup; import static jdk.nashorn.internal.runtime.regexp.joni.Option.isIgnoreCase; -import jdk.nashorn.internal.runtime.regexp.joni.encoding.CharacterType; import jdk.nashorn.internal.runtime.regexp.joni.ast.AnchorNode; import jdk.nashorn.internal.runtime.regexp.joni.ast.AnyCharNode; import jdk.nashorn.internal.runtime.regexp.joni.ast.BackRefNode; import jdk.nashorn.internal.runtime.regexp.joni.ast.CClassNode; +import jdk.nashorn.internal.runtime.regexp.joni.ast.CClassNode.CCStateArg; import jdk.nashorn.internal.runtime.regexp.joni.ast.ConsAltNode; import jdk.nashorn.internal.runtime.regexp.joni.ast.EncloseNode; import jdk.nashorn.internal.runtime.regexp.joni.ast.Node; import jdk.nashorn.internal.runtime.regexp.joni.ast.QuantifierNode; import jdk.nashorn.internal.runtime.regexp.joni.ast.StringNode; -import jdk.nashorn.internal.runtime.regexp.joni.ast.CClassNode.CCStateArg; import jdk.nashorn.internal.runtime.regexp.joni.constants.AnchorType; import jdk.nashorn.internal.runtime.regexp.joni.constants.CCSTATE; import jdk.nashorn.internal.runtime.regexp.joni.constants.CCVALTYPE; import jdk.nashorn.internal.runtime.regexp.joni.constants.EncloseType; import jdk.nashorn.internal.runtime.regexp.joni.constants.NodeType; import jdk.nashorn.internal.runtime.regexp.joni.constants.TokenType; +import jdk.nashorn.internal.runtime.regexp.joni.encoding.CharacterType; class Parser extends Lexer { diff -r 94482f6cc1ac -r 9fcb9ceceacb nashorn/src/jdk/nashorn/internal/runtime/resources/fx/controls.js --- a/nashorn/src/jdk/nashorn/internal/runtime/resources/fx/controls.js Wed Jun 05 13:33:33 2013 +0530 +++ b/nashorn/src/jdk/nashorn/internal/runtime/resources/fx/controls.js Wed Jun 05 12:54:21 2013 -0300 @@ -70,7 +70,7 @@ CheckBoxTreeCell = Java.type("javafx.scene.control.cell.CheckBoxTreeCell"); CheckBoxTreeCellBuilder = Java.type("javafx.scene.control.cell.CheckBoxTreeCellBuilder"); CheckBoxTreeTableCell = Java.type("javafx.scene.control.cell.CheckBoxTreeTableCell"); -CheckBoxTreeTableCellBuilder = Java.type("javafx.scene.control.cell.CheckBoxTreeTableCellBuilder"); +//CheckBoxTreeTableCellBuilder = Java.type("javafx.scene.control.cell.CheckBoxTreeTableCellBuilder"); ChoiceBoxListCell = Java.type("javafx.scene.control.cell.ChoiceBoxListCell"); ChoiceBoxListCellBuilder = Java.type("javafx.scene.control.cell.ChoiceBoxListCellBuilder"); ChoiceBoxTableCell = Java.type("javafx.scene.control.cell.ChoiceBoxTableCell"); @@ -78,7 +78,7 @@ ChoiceBoxTreeCell = Java.type("javafx.scene.control.cell.ChoiceBoxTreeCell"); ChoiceBoxTreeCellBuilder = Java.type("javafx.scene.control.cell.ChoiceBoxTreeCellBuilder"); ChoiceBoxTreeTableCell = Java.type("javafx.scene.control.cell.ChoiceBoxTreeTableCell"); -ChoiceBoxTreeTableCellBuilder = Java.type("javafx.scene.control.cell.ChoiceBoxTreeTableCellBuilder"); +//ChoiceBoxTreeTableCellBuilder = Java.type("javafx.scene.control.cell.ChoiceBoxTreeTableCellBuilder"); ComboBoxListCell = Java.type("javafx.scene.control.cell.ComboBoxListCell"); ComboBoxListCellBuilder = Java.type("javafx.scene.control.cell.ComboBoxListCellBuilder"); ComboBoxTableCell = Java.type("javafx.scene.control.cell.ComboBoxTableCell"); @@ -86,7 +86,7 @@ ComboBoxTreeCell = Java.type("javafx.scene.control.cell.ComboBoxTreeCell"); ComboBoxTreeCellBuilder = Java.type("javafx.scene.control.cell.ComboBoxTreeCellBuilder"); ComboBoxTreeTableCell = Java.type("javafx.scene.control.cell.ComboBoxTreeTableCell"); -ComboBoxTreeTableCellBuilder = Java.type("javafx.scene.control.cell.ComboBoxTreeTableCellBuilder"); +//ComboBoxTreeTableCellBuilder = Java.type("javafx.scene.control.cell.ComboBoxTreeTableCellBuilder"); MapValueFactory = Java.type("javafx.scene.control.cell.MapValueFactory"); ProgressBarTableCell = Java.type("javafx.scene.control.cell.ProgressBarTableCell"); ProgressBarTreeTableCell = Java.type("javafx.scene.control.cell.ProgressBarTreeTableCell"); @@ -99,9 +99,9 @@ TextFieldTreeCell = Java.type("javafx.scene.control.cell.TextFieldTreeCell"); TextFieldTreeCellBuilder = Java.type("javafx.scene.control.cell.TextFieldTreeCellBuilder"); TextFieldTreeTableCell = Java.type("javafx.scene.control.cell.TextFieldTreeTableCell"); -TextFieldTreeTableCellBuilder = Java.type("javafx.scene.control.cell.TextFieldTreeTableCellBuilder"); +//TextFieldTreeTableCellBuilder = Java.type("javafx.scene.control.cell.TextFieldTreeTableCellBuilder"); TreeItemPropertyValueFactory = Java.type("javafx.scene.control.cell.TreeItemPropertyValueFactory"); -TreeItemPropertyValueFactoryBuilder = Java.type("javafx.scene.control.cell.TreeItemPropertyValueFactoryBuilder"); +//TreeItemPropertyValueFactoryBuilder = Java.type("javafx.scene.control.cell.TreeItemPropertyValueFactoryBuilder"); CellBuilder = Java.type("javafx.scene.control.CellBuilder"); CheckBox = Java.type("javafx.scene.control.CheckBox"); CheckBoxBuilder = Java.type("javafx.scene.control.CheckBoxBuilder"); @@ -167,7 +167,7 @@ RadioMenuItem = Java.type("javafx.scene.control.RadioMenuItem"); RadioMenuItemBuilder = Java.type("javafx.scene.control.RadioMenuItemBuilder"); ResizeFeaturesBase = Java.type("javafx.scene.control.ResizeFeaturesBase"); -ResizeFeaturesBaseBuilder = Java.type("javafx.scene.control.ResizeFeaturesBaseBuilder"); +//ResizeFeaturesBaseBuilder = Java.type("javafx.scene.control.ResizeFeaturesBaseBuilder"); ScrollBar = Java.type("javafx.scene.control.ScrollBar"); ScrollBarBuilder = Java.type("javafx.scene.control.ScrollBarBuilder"); ScrollPane = Java.type("javafx.scene.control.ScrollPane"); @@ -183,7 +183,7 @@ SingleSelectionModel = Java.type("javafx.scene.control.SingleSelectionModel"); Skin = Java.type("javafx.scene.control.Skin"); SkinBase = Java.type("javafx.scene.control.SkinBase"); -SkinBaseBuilder = Java.type("javafx.scene.control.SkinBaseBuilder"); +//SkinBaseBuilder = Java.type("javafx.scene.control.SkinBaseBuilder"); Skinnable = Java.type("javafx.scene.control.Skinnable"); Slider = Java.type("javafx.scene.control.Slider"); SliderBuilder = Java.type("javafx.scene.control.SliderBuilder"); @@ -202,7 +202,7 @@ TableColumn$CellEditEvent = Java.type("javafx.scene.control.TableColumn$CellEditEvent"); TableColumn$SortType = Java.type("javafx.scene.control.TableColumn$SortType"); TableColumnBase = Java.type("javafx.scene.control.TableColumnBase"); -TableColumnBaseBuilder = Java.type("javafx.scene.control.TableColumnBaseBuilder"); +//TableColumnBaseBuilder = Java.type("javafx.scene.control.TableColumnBaseBuilder"); TableColumnBuilder = Java.type("javafx.scene.control.TableColumnBuilder"); TableFocusModel = Java.type("javafx.scene.control.TableFocusModel"); TablePosition = Java.type("javafx.scene.control.TablePosition"); @@ -210,7 +210,7 @@ TableRow = Java.type("javafx.scene.control.TableRow"); TableRowBuilder = Java.type("javafx.scene.control.TableRowBuilder"); TableSelectionModel = Java.type("javafx.scene.control.TableSelectionModel"); -TableSelectionModelBuilder = Java.type("javafx.scene.control.TableSelectionModelBuilder"); +//TableSelectionModelBuilder = Java.type("javafx.scene.control.TableSelectionModelBuilder"); TableView = Java.type("javafx.scene.control.TableView"); TableView$ResizeFeatures = Java.type("javafx.scene.control.TableView$ResizeFeatures"); TableView$TableViewFocusModel = Java.type("javafx.scene.control.TableView$TableViewFocusModel"); @@ -244,21 +244,21 @@ TreeItemBuilder = Java.type("javafx.scene.control.TreeItemBuilder"); TreeSortMode = Java.type("javafx.scene.control.TreeSortMode"); TreeTableCell = Java.type("javafx.scene.control.TreeTableCell"); -TreeTableCellBuilder = Java.type("javafx.scene.control.TreeTableCellBuilder"); +//TreeTableCellBuilder = Java.type("javafx.scene.control.TreeTableCellBuilder"); TreeTableColumn = Java.type("javafx.scene.control.TreeTableColumn"); TreeTableColumn$CellDataFeatures = Java.type("javafx.scene.control.TreeTableColumn$CellDataFeatures"); TreeTableColumn$CellEditEvent = Java.type("javafx.scene.control.TreeTableColumn$CellEditEvent"); TreeTableColumn$SortType = Java.type("javafx.scene.control.TreeTableColumn$SortType"); -TreeTableColumnBuilder = Java.type("javafx.scene.control.TreeTableColumnBuilder"); +//TreeTableColumnBuilder = Java.type("javafx.scene.control.TreeTableColumnBuilder"); TreeTablePosition = Java.type("javafx.scene.control.TreeTablePosition"); TreeTableRow = Java.type("javafx.scene.control.TreeTableRow"); -TreeTableRowBuilder = Java.type("javafx.scene.control.TreeTableRowBuilder"); +//TreeTableRowBuilder = Java.type("javafx.scene.control.TreeTableRowBuilder"); TreeTableView = Java.type("javafx.scene.control.TreeTableView"); TreeTableView$EditEvent = Java.type("javafx.scene.control.TreeTableView$EditEvent"); TreeTableView$ResizeFeatures = Java.type("javafx.scene.control.TreeTableView$ResizeFeatures"); TreeTableView$TreeTableViewFocusModel = Java.type("javafx.scene.control.TreeTableView$TreeTableViewFocusModel"); TreeTableView$TreeTableViewSelectionModel = Java.type("javafx.scene.control.TreeTableView$TreeTableViewSelectionModel"); -TreeTableViewBuilder = Java.type("javafx.scene.control.TreeTableViewBuilder"); +//TreeTableViewBuilder = Java.type("javafx.scene.control.TreeTableViewBuilder"); TreeView = Java.type("javafx.scene.control.TreeView"); TreeView$EditEvent = Java.type("javafx.scene.control.TreeView$EditEvent"); TreeViewBuilder = Java.type("javafx.scene.control.TreeViewBuilder"); diff -r 94482f6cc1ac -r 9fcb9ceceacb nashorn/src/jdk/nashorn/internal/runtime/resources/fx/graphics.js --- a/nashorn/src/jdk/nashorn/internal/runtime/resources/fx/graphics.js Wed Jun 05 13:33:33 2013 +0530 +++ b/nashorn/src/jdk/nashorn/internal/runtime/resources/fx/graphics.js Wed Jun 05 12:54:21 2013 -0300 @@ -134,10 +134,10 @@ PrintResolution = Java.type("javafx.print.PrintResolution"); PrintSides = Java.type("javafx.print.PrintSides"); AmbientLight = Java.type("javafx.scene.AmbientLight"); -AmbientLightBuilder = Java.type("javafx.scene.AmbientLightBuilder"); +//AmbientLightBuilder = Java.type("javafx.scene.AmbientLightBuilder"); CacheHint = Java.type("javafx.scene.CacheHint"); Camera = Java.type("javafx.scene.Camera"); -CameraBuilder = Java.type("javafx.scene.CameraBuilder"); +//CameraBuilder = Java.type("javafx.scene.CameraBuilder"); Canvas = Java.type("javafx.scene.canvas.Canvas"); CanvasBuilder = Java.type("javafx.scene.canvas.CanvasBuilder"); GraphicsContext = Java.type("javafx.scene.canvas.GraphicsContext"); @@ -209,12 +209,12 @@ DragEvent = Java.type("javafx.scene.input.DragEvent"); GestureEvent = Java.type("javafx.scene.input.GestureEvent"); InputEvent = Java.type("javafx.scene.input.InputEvent"); -InputEventBuilder = Java.type("javafx.scene.input.InputEventBuilder"); +//InputEventBuilder = Java.type("javafx.scene.input.InputEventBuilder"); InputMethodEvent = Java.type("javafx.scene.input.InputMethodEvent"); InputMethodHighlight = Java.type("javafx.scene.input.InputMethodHighlight"); InputMethodRequests = Java.type("javafx.scene.input.InputMethodRequests"); InputMethodTextRun = Java.type("javafx.scene.input.InputMethodTextRun"); -InputMethodTextRunBuilder = Java.type("javafx.scene.input.InputMethodTextRunBuilder"); +//InputMethodTextRunBuilder = Java.type("javafx.scene.input.InputMethodTextRunBuilder"); KeyCharacterCombination = Java.type("javafx.scene.input.KeyCharacterCombination"); KeyCharacterCombinationBuilder = Java.type("javafx.scene.input.KeyCharacterCombinationBuilder"); KeyCode = Java.type("javafx.scene.input.KeyCode"); @@ -238,35 +238,35 @@ TouchEvent = Java.type("javafx.scene.input.TouchEvent"); TouchPoint = Java.type("javafx.scene.input.TouchPoint"); TouchPoint$State = Java.type("javafx.scene.input.TouchPoint$State"); -TouchPointBuilder = Java.type("javafx.scene.input.TouchPointBuilder"); +//TouchPointBuilder = Java.type("javafx.scene.input.TouchPointBuilder"); TransferMode = Java.type("javafx.scene.input.TransferMode"); ZoomEvent = Java.type("javafx.scene.input.ZoomEvent"); AnchorPane = Java.type("javafx.scene.layout.AnchorPane"); AnchorPaneBuilder = Java.type("javafx.scene.layout.AnchorPaneBuilder"); Background = Java.type("javafx.scene.layout.Background"); -BackgroundBuilder = Java.type("javafx.scene.layout.BackgroundBuilder"); +//BackgroundBuilder = Java.type("javafx.scene.layout.BackgroundBuilder"); BackgroundFill = Java.type("javafx.scene.layout.BackgroundFill"); -BackgroundFillBuilder = Java.type("javafx.scene.layout.BackgroundFillBuilder"); +//BackgroundFillBuilder = Java.type("javafx.scene.layout.BackgroundFillBuilder"); BackgroundImage = Java.type("javafx.scene.layout.BackgroundImage"); -BackgroundImageBuilder = Java.type("javafx.scene.layout.BackgroundImageBuilder"); +//BackgroundImageBuilder = Java.type("javafx.scene.layout.BackgroundImageBuilder"); BackgroundPosition = Java.type("javafx.scene.layout.BackgroundPosition"); -BackgroundPositionBuilder = Java.type("javafx.scene.layout.BackgroundPositionBuilder"); +//BackgroundPositionBuilder = Java.type("javafx.scene.layout.BackgroundPositionBuilder"); BackgroundRepeat = Java.type("javafx.scene.layout.BackgroundRepeat"); BackgroundSize = Java.type("javafx.scene.layout.BackgroundSize"); -BackgroundSizeBuilder = Java.type("javafx.scene.layout.BackgroundSizeBuilder"); +//BackgroundSizeBuilder = Java.type("javafx.scene.layout.BackgroundSizeBuilder"); Border = Java.type("javafx.scene.layout.Border"); -BorderBuilder = Java.type("javafx.scene.layout.BorderBuilder"); +//BorderBuilder = Java.type("javafx.scene.layout.BorderBuilder"); BorderImage = Java.type("javafx.scene.layout.BorderImage"); -BorderImageBuilder = Java.type("javafx.scene.layout.BorderImageBuilder"); +//BorderImageBuilder = Java.type("javafx.scene.layout.BorderImageBuilder"); BorderPane = Java.type("javafx.scene.layout.BorderPane"); BorderPaneBuilder = Java.type("javafx.scene.layout.BorderPaneBuilder"); BorderRepeat = Java.type("javafx.scene.layout.BorderRepeat"); BorderStroke = Java.type("javafx.scene.layout.BorderStroke"); -BorderStrokeBuilder = Java.type("javafx.scene.layout.BorderStrokeBuilder"); +//BorderStrokeBuilder = Java.type("javafx.scene.layout.BorderStrokeBuilder"); BorderStrokeStyle = Java.type("javafx.scene.layout.BorderStrokeStyle"); -BorderStrokeStyleBuilder = Java.type("javafx.scene.layout.BorderStrokeStyleBuilder"); +//BorderStrokeStyleBuilder = Java.type("javafx.scene.layout.BorderStrokeStyleBuilder"); BorderWidths = Java.type("javafx.scene.layout.BorderWidths"); -BorderWidthsBuilder = Java.type("javafx.scene.layout.BorderWidthsBuilder"); +//BorderWidthsBuilder = Java.type("javafx.scene.layout.BorderWidthsBuilder"); ColumnConstraints = Java.type("javafx.scene.layout.ColumnConstraints"); ColumnConstraintsBuilder = Java.type("javafx.scene.layout.ColumnConstraintsBuilder"); ConstraintsBase = Java.type("javafx.scene.layout.ConstraintsBase"); @@ -291,7 +291,7 @@ VBox = Java.type("javafx.scene.layout.VBox"); VBoxBuilder = Java.type("javafx.scene.layout.VBoxBuilder"); LightBase = Java.type("javafx.scene.LightBase"); -LightBaseBuilder = Java.type("javafx.scene.LightBaseBuilder"); +//LightBaseBuilder = Java.type("javafx.scene.LightBaseBuilder"); Node = Java.type("javafx.scene.Node"); NodeBuilder = Java.type("javafx.scene.NodeBuilder"); Color = Java.type("javafx.scene.paint.Color"); @@ -304,19 +304,19 @@ Material = Java.type("javafx.scene.paint.Material"); Paint = Java.type("javafx.scene.paint.Paint"); PhongMaterial = Java.type("javafx.scene.paint.PhongMaterial"); -PhongMaterialBuilder = Java.type("javafx.scene.paint.PhongMaterialBuilder"); +//PhongMaterialBuilder = Java.type("javafx.scene.paint.PhongMaterialBuilder"); RadialGradient = Java.type("javafx.scene.paint.RadialGradient"); RadialGradientBuilder = Java.type("javafx.scene.paint.RadialGradientBuilder"); Stop = Java.type("javafx.scene.paint.Stop"); StopBuilder = Java.type("javafx.scene.paint.StopBuilder"); ParallelCamera = Java.type("javafx.scene.ParallelCamera"); -ParallelCameraBuilder = Java.type("javafx.scene.ParallelCameraBuilder"); +//ParallelCameraBuilder = Java.type("javafx.scene.ParallelCameraBuilder"); Parent = Java.type("javafx.scene.Parent"); ParentBuilder = Java.type("javafx.scene.ParentBuilder"); PerspectiveCamera = Java.type("javafx.scene.PerspectiveCamera"); PerspectiveCameraBuilder = Java.type("javafx.scene.PerspectiveCameraBuilder"); PointLight = Java.type("javafx.scene.PointLight"); -PointLightBuilder = Java.type("javafx.scene.PointLightBuilder"); +//PointLightBuilder = Java.type("javafx.scene.PointLightBuilder"); //Scene = Java.type("javafx.scene.Scene"); SceneBuilder = Java.type("javafx.scene.SceneBuilder"); Arc = Java.type("javafx.scene.shape.Arc"); @@ -325,7 +325,7 @@ ArcToBuilder = Java.type("javafx.scene.shape.ArcToBuilder"); ArcType = Java.type("javafx.scene.shape.ArcType"); Box = Java.type("javafx.scene.shape.Box"); -BoxBuilder = Java.type("javafx.scene.shape.BoxBuilder"); +//BoxBuilder = Java.type("javafx.scene.shape.BoxBuilder"); Circle = Java.type("javafx.scene.shape.Circle"); CircleBuilder = Java.type("javafx.scene.shape.CircleBuilder"); ClosePath = Java.type("javafx.scene.shape.ClosePath"); @@ -336,7 +336,7 @@ CubicCurveToBuilder = Java.type("javafx.scene.shape.CubicCurveToBuilder"); CullFace = Java.type("javafx.scene.shape.CullFace"); Cylinder = Java.type("javafx.scene.shape.Cylinder"); -CylinderBuilder = Java.type("javafx.scene.shape.CylinderBuilder"); +//CylinderBuilder = Java.type("javafx.scene.shape.CylinderBuilder"); DrawMode = Java.type("javafx.scene.shape.DrawMode"); Ellipse = Java.type("javafx.scene.shape.Ellipse"); EllipseBuilder = Java.type("javafx.scene.shape.EllipseBuilder"); @@ -349,7 +349,7 @@ LineToBuilder = Java.type("javafx.scene.shape.LineToBuilder"); Mesh = Java.type("javafx.scene.shape.Mesh"); MeshView = Java.type("javafx.scene.shape.MeshView"); -MeshViewBuilder = Java.type("javafx.scene.shape.MeshViewBuilder"); +//MeshViewBuilder = Java.type("javafx.scene.shape.MeshViewBuilder"); MoveTo = Java.type("javafx.scene.shape.MoveTo"); MoveToBuilder = Java.type("javafx.scene.shape.MoveToBuilder"); Path = Java.type("javafx.scene.shape.Path"); @@ -368,10 +368,10 @@ RectangleBuilder = Java.type("javafx.scene.shape.RectangleBuilder"); Shape = Java.type("javafx.scene.shape.Shape"); Shape3D = Java.type("javafx.scene.shape.Shape3D"); -Shape3DBuilder = Java.type("javafx.scene.shape.Shape3DBuilder"); +//Shape3DBuilder = Java.type("javafx.scene.shape.Shape3DBuilder"); ShapeBuilder = Java.type("javafx.scene.shape.ShapeBuilder"); Sphere = Java.type("javafx.scene.shape.Sphere"); -SphereBuilder = Java.type("javafx.scene.shape.SphereBuilder"); +//SphereBuilder = Java.type("javafx.scene.shape.SphereBuilder"); StrokeLineCap = Java.type("javafx.scene.shape.StrokeLineCap"); StrokeLineJoin = Java.type("javafx.scene.shape.StrokeLineJoin"); StrokeType = Java.type("javafx.scene.shape.StrokeType"); @@ -384,7 +384,7 @@ SnapshotParametersBuilder = Java.type("javafx.scene.SnapshotParametersBuilder"); SnapshotResult = Java.type("javafx.scene.SnapshotResult"); SubScene = Java.type("javafx.scene.SubScene"); -SubSceneBuilder = Java.type("javafx.scene.SubSceneBuilder"); +//SubSceneBuilder = Java.type("javafx.scene.SubSceneBuilder"); Font = Java.type("javafx.scene.text.Font"); FontBuilder = Java.type("javafx.scene.text.FontBuilder"); FontPosture = Java.type("javafx.scene.text.FontPosture"); @@ -395,7 +395,7 @@ TextBoundsType = Java.type("javafx.scene.text.TextBoundsType"); TextBuilder = Java.type("javafx.scene.text.TextBuilder"); TextFlow = Java.type("javafx.scene.text.TextFlow"); -TextFlowBuilder = Java.type("javafx.scene.text.TextFlowBuilder"); +//TextFlowBuilder = Java.type("javafx.scene.text.TextFlowBuilder"); Affine = Java.type("javafx.scene.transform.Affine"); AffineBuilder = Java.type("javafx.scene.transform.AffineBuilder"); MatrixType = Java.type("javafx.scene.transform.MatrixType"); @@ -407,7 +407,7 @@ Shear = Java.type("javafx.scene.transform.Shear"); ShearBuilder = Java.type("javafx.scene.transform.ShearBuilder"); Transform = Java.type("javafx.scene.transform.Transform"); -TransformBuilder = Java.type("javafx.scene.transform.TransformBuilder"); +//TransformBuilder = Java.type("javafx.scene.transform.TransformBuilder"); TransformChangedEvent = Java.type("javafx.scene.transform.TransformChangedEvent"); Translate = Java.type("javafx.scene.transform.Translate"); TranslateBuilder = Java.type("javafx.scene.transform.TranslateBuilder"); diff -r 94482f6cc1ac -r 9fcb9ceceacb nashorn/src/jdk/nashorn/internal/runtime/resources/fx/swt.js --- a/nashorn/src/jdk/nashorn/internal/runtime/resources/fx/swt.js Wed Jun 05 13:33:33 2013 +0530 +++ b/nashorn/src/jdk/nashorn/internal/runtime/resources/fx/swt.js Wed Jun 05 12:54:21 2013 -0300 @@ -24,6 +24,6 @@ */ CustomTransfer = Java.type("javafx.embed.swt.CustomTransfer"); -CustomTransferBuilder = Java.type("javafx.embed.swt.CustomTransferBuilder"); +//CustomTransferBuilder = Java.type("javafx.embed.swt.CustomTransferBuilder"); FXCanvas = Java.type("javafx.embed.swt.FXCanvas"); SWTFXUtils = Java.type("javafx.embed.swt.SWTFXUtils"); diff -r 94482f6cc1ac -r 9fcb9ceceacb nashorn/src/jdk/nashorn/internal/runtime/resources/fx/web.js --- a/nashorn/src/jdk/nashorn/internal/runtime/resources/fx/web.js Wed Jun 05 13:33:33 2013 +0530 +++ b/nashorn/src/jdk/nashorn/internal/runtime/resources/fx/web.js Wed Jun 05 12:54:21 2013 -0300 @@ -24,10 +24,10 @@ */ HTMLEditor = Java.type("javafx.scene.web.HTMLEditor"); -HTMLEditorBuilder = Java.type("javafx.scene.web.HTMLEditorBuilder"); +//HTMLEditorBuilder = Java.type("javafx.scene.web.HTMLEditorBuilder"); PopupFeatures = Java.type("javafx.scene.web.PopupFeatures"); PromptData = Java.type("javafx.scene.web.PromptData"); -PromptDataBuilder = Java.type("javafx.scene.web.PromptDataBuilder"); +//PromptDataBuilder = Java.type("javafx.scene.web.PromptDataBuilder"); WebEngine = Java.type("javafx.scene.web.WebEngine"); WebEngineBuilder = Java.type("javafx.scene.web.WebEngineBuilder"); WebEvent = Java.type("javafx.scene.web.WebEvent"); diff -r 94482f6cc1ac -r 9fcb9ceceacb nashorn/test/script/basic/JDK-8015350.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nashorn/test/script/basic/JDK-8015350.js Wed Jun 05 12:54:21 2013 -0300 @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/** + * JDK-8015350: Array.prototype.reduceRight issue with large length and index + * + * @test + * @run + */ + +function reduce(obj) { + try { + Array.prototype.reduceRight.call(obj, function(acc, v, i, o){ + print(v + i); + throw "stop"; + }, 0); + } catch (error) { + print(error); + } +} + +// array-like object +reduce({ + length:0xffffffff, + 0xfffffffe: "index: " +}); + +// actual sparse array +var array = []; +array[0xfffffffe] = "index: "; +reduce(array); diff -r 94482f6cc1ac -r 9fcb9ceceacb nashorn/test/script/basic/JDK-8015350.js.EXPECTED --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nashorn/test/script/basic/JDK-8015350.js.EXPECTED Wed Jun 05 12:54:21 2013 -0300 @@ -0,0 +1,4 @@ +index: 4294967294 +stop +index: 4294967294 +stop