Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (101)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (309)
Collections:
Other Resources:
Rhino JavaScript Java Library Source Code
Rhino JavaScript Java Library is an open-source implementation of JavaScript written entirely in Java.
Rhino JavaScript Java Library Source Code files are provided in binary package (rhino-1.7.14.zip).
You can also browse the source code below:
✍: FYIcenter.com
⏎ org/mozilla/javascript/ConsString.java
/* -*- Mode: java; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ package org.mozilla.javascript; import java.io.Serializable; import java.util.ArrayDeque; /** * <p>This class represents a string composed of two components, each of which * may be a <code>java.lang.String</code> or another ConsString.</p> * * <p>This string representation is optimized for concatenation using the "+" * operator. Instead of immediately copying both components to a new character * array, ConsString keeps references to the original components and only * converts them to a String if either toString() is called or a certain depth * level is reached.</p> * * <p>Note that instances of this class are only immutable if both parts are * immutable, i.e. either Strings or ConsStrings that are ultimately composed * of Strings.</p> * * <p>Both the name and the concept are borrowed from V8.</p> */ public class ConsString implements CharSequence, Serializable { private static final long serialVersionUID = -8432806714471372570L; private CharSequence left, right; private final int length; private boolean isFlat; public ConsString(CharSequence str1, CharSequence str2) { left = str1; right = str2; length = left.length() + right.length(); isFlat = false; } // Replace with string representation when serializing private Object writeReplace() { return this.toString(); } @Override public String toString() { return isFlat ? (String)left : flatten(); } private synchronized String flatten() { if (!isFlat) { final char[] chars = new char[length]; int charPos = length; ArrayDeque<CharSequence> stack = new ArrayDeque<CharSequence>(); stack.addFirst(left); CharSequence next = right; do { if (next instanceof ConsString) { ConsString casted = (ConsString) next; if (casted.isFlat) { next = casted.left; } else { stack.addFirst(casted.left); next = casted.right; continue; } } final String str = (String) next; charPos -= str.length(); str.getChars(0, str.length(), chars, charPos); next = stack.isEmpty() ? null : stack.removeFirst(); } while (next != null); left = new String(chars); right = ""; isFlat = true; } return (String)left; } @Override public int length() { return length; } @Override public char charAt(int index) { String str = isFlat ? (String)left : flatten(); return str.charAt(index); } @Override public CharSequence subSequence(int start, int end) { String str = isFlat ? (String)left : flatten(); return str.substring(start, end); } }
⏎ org/mozilla/javascript/ConsString.java
Or download all of them as a single archive file:
File name: rhino-1.7.14-sources.jar File size: 1029165 bytes Release date: 2022-01-06 Download
⇒ Example code to Test rhino-runtime-1.7.14.jar
⇐ Download Rhino JavaScript Binary Package
2022-05-03, 34716👍, 1💬
Popular Posts:
Java Architecture for XML Binding (JAXB) is a Java API that allows Java developers to map Java class...
JDK 11 jdk.aot.jmod is the JMOD file for JDK 11 Ahead-of-Time (AOT) Compiler module. JDK 11 AOT Comp...
How to run "jar" command from JDK tools.jar file? "jar" is the JAR (Java Archive) file management co...
Jettison is a collection of Java APIs (like STaX and DOM) which read and write JSON. This allows nea...
How to download and install javamail-1_2.zip? The JavaMail API is a set of abstract APIs that model ...