Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (102)
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 (322)
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, ≈204🔥, 1💬
Popular Posts:
What Is jtds-1.2.2.jar? jtds-1.2.2.jar is the JAR files of jTDS Java library 1.2.2, which is a JDBC ...
How to download and install ojdbc14.jar for Oracle 10g R2? ojdbc14.jar for Oracle 10g R2 is a Java 1...
JDK 17 java.xml.crypto.jmod is the JMOD file for JDK 17 XML (eXtensible Markup Language) Crypto modu...
What is the jaxp\SourceValidator.jav aprovided in the Apache Xerces package? I have Apache Xerces 2....
JDK 11 jdk.internal.opt.jmod is the JMOD file for JDK 11 Internal Opt module. JDK 11 Internal Opt mo...