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/NativeJavaArray.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.lang.reflect.Array;
/**
* This class reflects Java arrays into the JavaScript environment.
*
* @author Mike Shaver
* @see NativeJavaClass
* @see NativeJavaObject
* @see NativeJavaPackage
*/
public class NativeJavaArray
extends NativeJavaObject
implements SymbolScriptable
{
private static final long serialVersionUID = -924022554283675333L;
@Override
public String getClassName() {
return "JavaArray";
}
public static NativeJavaArray wrap(Scriptable scope, Object array) {
return new NativeJavaArray(scope, array);
}
@Override
public Object unwrap() {
return array;
}
public NativeJavaArray(Scriptable scope, Object array) {
super(scope, null, ScriptRuntime.ObjectClass);
Class<?> cl = array.getClass();
if (!cl.isArray()) {
throw new RuntimeException("Array expected");
}
this.array = array;
this.length = Array.getLength(array);
this.cls = cl.getComponentType();
}
@Override
public boolean has(String id, Scriptable start) {
return id.equals("length") || super.has(id, start);
}
@Override
public boolean has(int index, Scriptable start) {
return 0 <= index && index < length;
}
@Override
public boolean has(Symbol key, Scriptable start) {
return SymbolKey.IS_CONCAT_SPREADABLE.equals(key);
}
@Override
public Object get(String id, Scriptable start) {
if (id.equals("length"))
return Integer.valueOf(length);
Object result = super.get(id, start);
if (result == NOT_FOUND &&
!ScriptableObject.hasProperty(getPrototype(), id))
{
throw Context.reportRuntimeErrorById(
"msg.java.member.not.found", array.getClass().getName(), id);
}
return result;
}
@Override
public Object get(int index, Scriptable start) {
if (0 <= index && index < length) {
Context cx = Context.getContext();
Object obj = Array.get(array, index);
return cx.getWrapFactory().wrap(cx, this, obj, cls);
}
return Undefined.instance;
}
@Override
public Object get(Symbol key, Scriptable start) {
if (SymbolKey.IS_CONCAT_SPREADABLE.equals(key)) {
return Boolean.TRUE;
}
return Scriptable.NOT_FOUND;
}
@Override
public void put(String id, Scriptable start, Object value) {
// Ignore assignments to "length"--it's readonly.
if (!id.equals("length"))
throw Context.reportRuntimeErrorById(
"msg.java.array.member.not.found", id);
}
@Override
public void put(int index, Scriptable start, Object value) {
if (0 <= index && index < length) {
Array.set(array, index, Context.jsToJava(value, cls));
}
else {
throw Context.reportRuntimeErrorById(
"msg.java.array.index.out.of.bounds", String.valueOf(index),
String.valueOf(length - 1));
}
}
@Override
public void delete(Symbol key) {
// All symbols are read-only
}
@Override
public Object getDefaultValue(Class<?> hint) {
if (hint == null || hint == ScriptRuntime.StringClass)
return array.toString();
if (hint == ScriptRuntime.BooleanClass)
return Boolean.TRUE;
if (hint == ScriptRuntime.NumberClass)
return ScriptRuntime.NaNobj;
return this;
}
@Override
public Object[] getIds() {
Object[] result = new Object[length];
int i = length;
while (--i >= 0)
result[i] = Integer.valueOf(i);
return result;
}
@Override
public boolean hasInstance(Scriptable value) {
if (!(value instanceof Wrapper))
return false;
Object instance = ((Wrapper)value).unwrap();
return cls.isInstance(instance);
}
@Override
public Scriptable getPrototype() {
if (prototype == null) {
prototype =
ScriptableObject.getArrayPrototype(this.getParentScope());
}
return prototype;
}
Object array;
int length;
Class<?> cls;
}
⏎ org/mozilla/javascript/NativeJavaArray.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, ≈130🔥, 1💬
Popular Posts:
How to download and install ojdbc14.jar for Oracle 10g R2? ojdbc14.jar for Oracle 10g R2 is a Java 1...
Apache Log4j provides the interface that applications should code to and provides the adapter compon...
commons-fileupload-1.3.3 -sources.jaris the source JAR file for Apache Commons FileUpload 1.3., whic...
JDK 11 java.compiler.jmod is the JMOD file for JDK 11 Compiler module. JDK 11 Compiler module compil...
JDK 11 jdk.crypto.ec.jmod is the JMOD file for JDK 11 Crypto EC module. JDK 11 Crypto EC module comp...