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, ≈78🔥, 1💬
Popular Posts:
What Is HttpComponents commons-httpclient-3.1.j ar?HttpComponents commons-httpclient-3.1.j aris the ...
What Is poi-3.5.jar - Part 2? poi-3.5.jar is one of the JAR files for Apache POI 3.5, which provides...
How to run "jar" command from JDK tools.jar file? "jar" is the JAR (Java Archive) file management co...
JDK 17 jdk.javadoc.jmod is the JMOD file for JDK 17 Java Document tool, which can be invoked by the ...
JSP(tm) Standard Tag Library 1.0 implementation - Jakarta Taglibs hosts the Standard Taglib 1.0, an ...