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/JavaMembers_jdk11.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.InvocationTargetException; import java.lang.reflect.Method; import java.lang.reflect.Proxy; import java.util.Map; /** Version of {@link JavaMembers} for modular JDKs. */ class JavaMembers_jdk11 extends JavaMembers { JavaMembers_jdk11(Scriptable scope, Class<?> cl, boolean includeProtected) { super(scope, cl, includeProtected); } @Override void discoverPublicMethods(Class<?> clazz, Map<MethodSignature, Method> map) { if (isExportedClass(clazz)) { super.discoverPublicMethods(clazz, map); } else { Method[] methods = clazz.getMethods(); for (Method method : methods) { method = findAccessibleMethod(method); registerMethod(map, method); } } } private static boolean isExportedClass(Class<?> clazz) { /* * We are going to invoke, using reflection, the approximate equivalent * to the following Java 9 code: * * return clazz.getModule().isExported(clazz.getPackageName()); */ // First, determine the package name String pname; Package pkg = clazz.getPackage(); if (pkg == null) { // Primitive types, arrays, proxy classes if (!Proxy.isProxyClass(clazz)) { // Should be a primitive type or array return true; } String clName = clazz.getName(); pname = clName.substring(0, clName.lastIndexOf('.')); } else { pname = pkg.getName(); } // Obtain the module Method getmodule; Class<?> cl = clazz.getClass(); try { getmodule = cl.getMethod("getModule"); } catch (NoSuchMethodException e) { // We are on non-modular Java return true; } Object module; try { module = getmodule.invoke(clazz); } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { return false; } Class<?> moduleClass = module.getClass(); // Execute isExported() boolean exported; try { Method isexported = moduleClass.getMethod("isExported", String.class); exported = (boolean) isexported.invoke(module, pname); } catch (NoSuchMethodException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { // If we reached this part of the code, this cannot happen exported = false; } return exported; } private static Method findAccessibleMethod(Method method) { Class<?> cl = method.getDeclaringClass(); final String methodName = method.getName(); final Class<?>[] methodTypes = method.getParameterTypes(); topLoop: do { for (Class<?> intface : cl.getInterfaces()) { try { method = intface.getMethod(methodName, methodTypes); break topLoop; } catch (NoSuchMethodException e) { } } cl = cl.getSuperclass(); if (cl == null) { break; } if (isExportedClass(cl)) { try { method = cl.getMethod(methodName, methodTypes); break; } catch (NoSuchMethodException e) { } } } while (true); return method; } }
⏎ org/mozilla/javascript/JavaMembers_jdk11.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, 35444👍, 1💬
Popular Posts:
Provides a simple high-level Http server API, which can be used to build embedded HTTP servers. Both...
What is ojdbc.jar - JDBC Driver for Oracle? ojdbc.jar is a JDBC driver from Oracle that provides dat...
JDK 11 jdk.hotspot.agent.jmod is the JMOD file for JDK 11 Hotspot Agent module. JDK 11 Hotspot Agent...
JRE 8 rt.jar is the JAR file for JRE 8 RT (Runtime) libraries. JRE (Java Runtime) 8 is the runtime e...
Apache BCEL Source Code Files are inside the Apache BCEL source package file like bcel-6.5.0-src.zip...