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:
JDK 11 jdk.scripting.nashorn.jmod - Scripting Nashorn Module
JDK 11 jdk.scripting.nashorn.jmod is the JMOD file for JDK 11 Scripting Nashorn module.
JDK 11 Scripting Nashorn module compiled class files are stored in \fyicenter\jdk-11.0.1\jmods\jdk.scripting.nashorn.jmod.
JDK 11 Scripting Nashorn module compiled class files are also linked and stored in the \fyicenter\jdk-11.0.1\lib\modules JImage file.
JDK 11 Scripting Nashorn module source code files are stored in \fyicenter\jdk-11.0.1\lib\src.zip\jdk.scripting.nashorn.
You can click and view the content of each source code file in the list below.
✍: FYIcenter
⏎ jdk/nashorn/internal/codegen/types/ObjectType.java
/* * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * */ package jdk.nashorn.internal.codegen.types; import static jdk.internal.org.objectweb.asm.Opcodes.ACONST_NULL; import static jdk.internal.org.objectweb.asm.Opcodes.ALOAD; import static jdk.internal.org.objectweb.asm.Opcodes.ARETURN; import static jdk.internal.org.objectweb.asm.Opcodes.ASTORE; import static jdk.internal.org.objectweb.asm.Opcodes.CHECKCAST; import static jdk.internal.org.objectweb.asm.Opcodes.GETSTATIC; import static jdk.nashorn.internal.codegen.CompilerConstants.className; import static jdk.nashorn.internal.codegen.CompilerConstants.typeDescriptor; import java.lang.invoke.MethodHandle; import jdk.internal.org.objectweb.asm.Handle; import jdk.internal.org.objectweb.asm.MethodVisitor; import jdk.nashorn.internal.codegen.CompilerConstants; import jdk.nashorn.internal.runtime.JSType; import jdk.nashorn.internal.runtime.ScriptRuntime; import jdk.nashorn.internal.runtime.Undefined; /** * Type class: OBJECT This is the object type, used for all object types. It can * contain a class that is a more specialized object */ class ObjectType extends Type { private static final long serialVersionUID = 1L; protected ObjectType() { this(Object.class); } protected ObjectType(final Class<?> clazz) { super("object", clazz, clazz == Object.class ? Type.MAX_WEIGHT : 10, 1); } @Override public String toString() { return "object" + (getTypeClass() != Object.class ? "<type=" + getTypeClass().getSimpleName() + '>' : ""); } @Override public String getShortDescriptor() { return getTypeClass() == Object.class ? "Object" : getTypeClass().getSimpleName(); } @Override public Type add(final MethodVisitor method, final int programPoint) { invokestatic(method, ScriptRuntime.ADD); return Type.OBJECT; } @Override public Type load(final MethodVisitor method, final int slot) { assert slot != -1; method.visitVarInsn(ALOAD, slot); return this; } @Override public void store(final MethodVisitor method, final int slot) { assert slot != -1; method.visitVarInsn(ASTORE, slot); } @Override public Type loadUndefined(final MethodVisitor method) { method.visitFieldInsn(GETSTATIC, className(ScriptRuntime.class), "UNDEFINED", typeDescriptor(Undefined.class)); return UNDEFINED; } @Override public Type loadForcedInitializer(final MethodVisitor method) { method.visitInsn(ACONST_NULL); // TODO: do we need a special type for null, e.g. Type.NULL? It should be assignable to any other object type // without a checkast in convert. return OBJECT; } @Override public Type loadEmpty(final MethodVisitor method) { method.visitFieldInsn(GETSTATIC, className(ScriptRuntime.class), "EMPTY", typeDescriptor(Undefined.class)); return UNDEFINED; } @Override public Type ldc(final MethodVisitor method, final Object c) { if (c == null) { method.visitInsn(ACONST_NULL); } else if (c instanceof Undefined) { return loadUndefined(method); } else if (c instanceof String) { method.visitLdcInsn(c); return STRING; } else if (c instanceof Handle) { method.visitLdcInsn(c); return Type.typeFor(MethodHandle.class); } else { throw new UnsupportedOperationException("implementation missing for class " + c.getClass() + " value=" + c); } return Type.OBJECT; } @Override public Type convert(final MethodVisitor method, final Type to) { final boolean toString = to.isString(); if (!toString) { if (to.isArray()) { final Type elemType = ((ArrayType)to).getElementType(); //note that if this an array, things won't work. see {link @ArrayType} subclass. //we also have the unpleasant case of NativeArray which looks like an Object, but is //an array to the type system. This is treated specially at the known load points if (elemType.isString()) { method.visitTypeInsn(CHECKCAST, CompilerConstants.className(String[].class)); } else if (elemType.isNumber()) { method.visitTypeInsn(CHECKCAST, CompilerConstants.className(double[].class)); } else if (elemType.isLong()) { method.visitTypeInsn(CHECKCAST, CompilerConstants.className(long[].class)); } else if (elemType.isInteger()) { method.visitTypeInsn(CHECKCAST, CompilerConstants.className(int[].class)); } else { method.visitTypeInsn(CHECKCAST, CompilerConstants.className(Object[].class)); } return to; } else if (to.isObject()) { final Class<?> toClass = to.getTypeClass(); if(!toClass.isAssignableFrom(getTypeClass())) { method.visitTypeInsn(CHECKCAST, CompilerConstants.className(toClass)); } return to; } } else if (isString()) { return to; } if (to.isInteger()) { invokestatic(method, JSType.TO_INT32); } else if (to.isNumber()) { invokestatic(method, JSType.TO_NUMBER); } else if (to.isLong()) { invokestatic(method, JSType.TO_LONG); } else if (to.isBoolean()) { invokestatic(method, JSType.TO_BOOLEAN); } else if (to.isString()) { invokestatic(method, JSType.TO_PRIMITIVE_TO_STRING); } else if (to.isCharSequence()) { invokestatic(method, JSType.TO_PRIMITIVE_TO_CHARSEQUENCE); } else { throw new UnsupportedOperationException("Illegal conversion " + this + " -> " + to + " " + isString() + " " + toString); } return to; } @Override public void _return(final MethodVisitor method) { method.visitInsn(ARETURN); } @Override public char getBytecodeStackType() { return 'A'; } }
⏎ jdk/nashorn/internal/codegen/types/ObjectType.java
Or download all of them as a single archive file:
File name: jdk.scripting.nashorn-11.0.1-src.zip File size: 1390965 bytes Release date: 2018-11-04 Download
⇒ JDK 11 jdk.scripting.nashorn.shell.jmod - Scripting Nashorn Shell Module
2020-04-25, 83807👍, 0💬
Popular Posts:
JDK 11 jdk.internal.vm.ci.jmod is the JMOD file for JDK 11 Internal VM CI module. JDK 11 Internal VM...
What Is commons-codec-1.4.jar? commons-codec-1.4.jar is the JAR file for Apache Commons Codec 1.4, w...
Jettison is a collection of Java APIs (like STaX and DOM) which read and write JSON. This allows nea...
JDK 11 jdk.jdi.jmod is the JMOD file for JDK 11 JDI (Java Debug Interface) tool. JDK 11 JDI tool com...
Provides a simple high-level Http server API, which can be used to build embedded HTTP servers. Both...