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/SpecialRef.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; class SpecialRef extends Ref { private static final long serialVersionUID = -7521596632456797847L; private static final int SPECIAL_NONE = 0; private static final int SPECIAL_PROTO = 1; private static final int SPECIAL_PARENT = 2; private Scriptable target; private int type; private String name; private SpecialRef(Scriptable target, int type, String name) { this.target = target; this.type = type; this.name = name; } static Ref createSpecial(Context cx, Scriptable scope, Object object, String name) { Scriptable target = ScriptRuntime.toObjectOrNull(cx, object, scope); if (target == null) { throw ScriptRuntime.undefReadError(object, name); } int type; if (name.equals("__proto__")) { type = SPECIAL_PROTO; } else if (name.equals("__parent__")) { type = SPECIAL_PARENT; } else { throw new IllegalArgumentException(name); } if (!cx.hasFeature(Context.FEATURE_PARENT_PROTO_PROPERTIES)) { // Clear special after checking for valid name! type = SPECIAL_NONE; } return new SpecialRef(target, type, name); } @Override public Object get(Context cx) { switch (type) { case SPECIAL_NONE: return ScriptRuntime.getObjectProp(target, name, cx); case SPECIAL_PROTO: return target.getPrototype(); case SPECIAL_PARENT: return target.getParentScope(); default: throw Kit.codeBug(); } } @Override @Deprecated public Object set(Context cx, Object value) { throw new IllegalStateException(); } @Override public Object set(Context cx, Scriptable scope, Object value) { switch (type) { case SPECIAL_NONE: return ScriptRuntime.setObjectProp(target, name, value, cx); case SPECIAL_PROTO: case SPECIAL_PARENT: { Scriptable obj = ScriptRuntime.toObjectOrNull(cx, value, scope); if (obj != null) { // Check that obj does not contain on its prototype/scope // chain to prevent cycles Scriptable search = obj; do { if (search == target) { throw Context.reportRuntimeErrorById("msg.cyclic.value", name); } if (type == SPECIAL_PROTO) { search = search.getPrototype(); } else { search = search.getParentScope(); } } while (search != null); } if (type == SPECIAL_PROTO) { if (target instanceof ScriptableObject && !((ScriptableObject) target).isExtensible() && cx.getLanguageVersion() >= Context.VERSION_1_8) { throw ScriptRuntime.typeErrorById("msg.not.extensible"); } if (cx.getLanguageVersion() >= Context.VERSION_ES6) { final String typeOfTarget = ScriptRuntime.typeof(target); if ("function".equals(typeOfTarget)) { if (value == null) { target.setPrototype(Undefined.SCRIPTABLE_UNDEFINED); return value; } final String typeOfValue = ScriptRuntime.typeof(value); if ("object".equals(typeOfValue) || "function".equals(typeOfValue)) { target.setPrototype(obj); } return value; } final String typeOfValue = ScriptRuntime.typeof(value); if ((value != null && !"object".equals(typeOfValue)) || !"object".equals(typeOfTarget)) { return Undefined.instance; } target.setPrototype(obj); } else { target.setPrototype(obj); } } else { target.setParentScope(obj); } return obj; } default: throw Kit.codeBug(); } } @Override public boolean has(Context cx) { if (type == SPECIAL_NONE) { return ScriptRuntime.hasObjectElem(target, name, cx); } return true; } @Override public boolean delete(Context cx) { if (type == SPECIAL_NONE) { return ScriptRuntime.deleteObjectElem(target, name, cx); } return false; } }
⏎ org/mozilla/javascript/SpecialRef.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, ≈77🔥, 1💬
Popular Posts:
What JAR files are required to run dom\Counter.java provided in the Apache Xerces package? You can f...
What Is ojdbc5.jar for Oracle 11g R1? ojdbc5.jar for Oracle 11g R1 is the JAR files of ojdbc.jar, JD...
Xalan-Java, Version 2.7.1, is an XSLT processor for transforming XML documents into HTML, text, or o...
What Is activation.jar? I heard it's related to JAF (JavaBeans Activation Framework) 1.0.2? The if y...
What Is mail.jar of JavaMail 1.4.2? I got the JAR file from javamail-1.4.2.zip. mail.jar in javamail...