diff --git a/enterprise/web.core/build.xml b/enterprise/web.core/build.xml index d5b57b5dba68..94cd0e99c384 100644 --- a/enterprise/web.core/build.xml +++ b/enterprise/web.core/build.xml @@ -21,4 +21,7 @@ --> + + + diff --git a/groovy/gradle/build.xml b/groovy/gradle/build.xml index 75cfa0275218..a59b4948d290 100644 --- a/groovy/gradle/build.xml +++ b/groovy/gradle/build.xml @@ -23,6 +23,8 @@ Builds, tests, and runs the project org.netbeans.modules.gradle + + @@ -36,9 +38,18 @@ - + + + + + + + + + + diff --git a/ide/libs.graalsdk/arch.xml b/ide/libs.graalsdk/arch.xml index bba4e70fc8a5..caf0538af958 100644 --- a/ide/libs.graalsdk/arch.xml +++ b/ide/libs.graalsdk/arch.xml @@ -148,7 +148,10 @@ This module re-exports org.graalvm.polyglot APIs. - Use them to obtain directly, if you trust the provider of those APIs. + Use them to obtain access to the GraalVM directly, if you only + want to work with them and generic + Scripting + wrapper isn't enough.

@@ -551,7 +554,9 @@ By default all the GraalVM engines (named GraalVM:something) - run in a very restricted, secure sandbox. That means they cannot + run in a very restricted, secure sandbox. See + GraalSDK + for details. That means the languages cannot access local files, ports, etc. Some languages (like >FastR implementation of the R language) need such access. In such diff --git a/ide/libs.graalsdk/external/binaries-list b/ide/libs.graalsdk/external/binaries-list index 516396da253f..70c4229b080a 100644 --- a/ide/libs.graalsdk/external/binaries-list +++ b/ide/libs.graalsdk/external/binaries-list @@ -14,4 +14,4 @@ # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. -0E1CCE754C9EF8847B473FAB3F848D1FE324F09E org.graalvm.sdk:graal-sdk:1.0.0-rc12 +3C22A79D3CCCCFD161F4DD935C30C745F6FFF848 org.graalvm.sdk:graal-sdk:19.0.0 diff --git a/ide/libs.graalsdk/external/graal-sdk-1.0.0-license.txt b/ide/libs.graalsdk/external/graal-sdk-19.0.0-license.txt similarity index 97% rename from ide/libs.graalsdk/external/graal-sdk-1.0.0-license.txt rename to ide/libs.graalsdk/external/graal-sdk-19.0.0-license.txt index 7a5f1230e22f..927010dc26c6 100644 --- a/ide/libs.graalsdk/external/graal-sdk-1.0.0-license.txt +++ b/ide/libs.graalsdk/external/graal-sdk-19.0.0-license.txt @@ -2,8 +2,8 @@ Name: Graal SDK and Truffle API Description: Graal SDK and Truffle API License: UPL Origin: https://github.com/oracle/graal -Version: 1.0 -Files: graal-sdk-1.0.0-rc12.jar +Version: 19.0.0 +Files: graal-sdk-19.0.0.jar Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. diff --git a/ide/libs.graalsdk/nbproject/org-netbeans-libs-graalsdk.sig b/ide/libs.graalsdk/nbproject/org-netbeans-libs-graalsdk.sig index 9a0f77cabebe..5557b9d42b01 100644 --- a/ide/libs.graalsdk/nbproject/org-netbeans-libs-graalsdk.sig +++ b/ide/libs.graalsdk/nbproject/org-netbeans-libs-graalsdk.sig @@ -1,5 +1,5 @@ #Signature file v4.1 -#Version 1.0.11 +#Version 1.1 CLSS public abstract interface java.io.Serializable @@ -9,12 +9,6 @@ meth public abstract void close() throws java.lang.Exception CLSS public abstract interface java.lang.Comparable<%0 extends java.lang.Object> meth public abstract int compareTo({java.lang.Comparable%0}) -CLSS public abstract interface !annotation java.lang.Deprecated - anno 0 java.lang.annotation.Documented() - anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) - anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE]) -intf java.lang.annotation.Annotation - CLSS public abstract java.lang.Enum<%0 extends java.lang.Enum<{java.lang.Enum%0}>> cons protected init(java.lang.String,int) intf java.io.Serializable @@ -125,9 +119,95 @@ CLSS public abstract interface !annotation java.lang.annotation.Target intf java.lang.annotation.Annotation meth public abstract java.lang.annotation.ElementType[] value() +CLSS public abstract interface org.graalvm.collections.EconomicMap<%0 extends java.lang.Object, %1 extends java.lang.Object> +intf org.graalvm.collections.UnmodifiableEconomicMap<{org.graalvm.collections.EconomicMap%0},{org.graalvm.collections.EconomicMap%1}> +meth public abstract org.graalvm.collections.MapCursor<{org.graalvm.collections.EconomicMap%0},{org.graalvm.collections.EconomicMap%1}> getEntries() +meth public abstract void clear() +meth public abstract void replaceAll(java.util.function.BiFunction) +meth public abstract {org.graalvm.collections.EconomicMap%1} put({org.graalvm.collections.EconomicMap%0},{org.graalvm.collections.EconomicMap%1}) +meth public abstract {org.graalvm.collections.EconomicMap%1} removeKey({org.graalvm.collections.EconomicMap%0}) +meth public static <%0 extends java.lang.Object, %1 extends java.lang.Object> org.graalvm.collections.EconomicMap<{%%0},{%%1}> create() +meth public static <%0 extends java.lang.Object, %1 extends java.lang.Object> org.graalvm.collections.EconomicMap<{%%0},{%%1}> create(int) +meth public static <%0 extends java.lang.Object, %1 extends java.lang.Object> org.graalvm.collections.EconomicMap<{%%0},{%%1}> create(org.graalvm.collections.Equivalence) +meth public static <%0 extends java.lang.Object, %1 extends java.lang.Object> org.graalvm.collections.EconomicMap<{%%0},{%%1}> create(org.graalvm.collections.Equivalence,int) +meth public static <%0 extends java.lang.Object, %1 extends java.lang.Object> org.graalvm.collections.EconomicMap<{%%0},{%%1}> create(org.graalvm.collections.Equivalence,org.graalvm.collections.UnmodifiableEconomicMap<{%%0},{%%1}>) +meth public static <%0 extends java.lang.Object, %1 extends java.lang.Object> org.graalvm.collections.EconomicMap<{%%0},{%%1}> create(org.graalvm.collections.UnmodifiableEconomicMap<{%%0},{%%1}>) +meth public static <%0 extends java.lang.Object, %1 extends java.lang.Object> org.graalvm.collections.EconomicMap<{%%0},{%%1}> wrapMap(java.util.Map<{%%0},{%%1}>) +meth public void putAll(org.graalvm.collections.EconomicMap<{org.graalvm.collections.EconomicMap%0},{org.graalvm.collections.EconomicMap%1}>) +meth public void putAll(org.graalvm.collections.UnmodifiableEconomicMap) + +CLSS public abstract interface org.graalvm.collections.EconomicSet<%0 extends java.lang.Object> +intf org.graalvm.collections.UnmodifiableEconomicSet<{org.graalvm.collections.EconomicSet%0}> +meth public abstract boolean add({org.graalvm.collections.EconomicSet%0}) +meth public abstract void clear() +meth public abstract void remove({org.graalvm.collections.EconomicSet%0}) +meth public static <%0 extends java.lang.Object> org.graalvm.collections.EconomicSet<{%%0}> create() +meth public static <%0 extends java.lang.Object> org.graalvm.collections.EconomicSet<{%%0}> create(int) +meth public static <%0 extends java.lang.Object> org.graalvm.collections.EconomicSet<{%%0}> create(org.graalvm.collections.Equivalence) +meth public static <%0 extends java.lang.Object> org.graalvm.collections.EconomicSet<{%%0}> create(org.graalvm.collections.Equivalence,int) +meth public static <%0 extends java.lang.Object> org.graalvm.collections.EconomicSet<{%%0}> create(org.graalvm.collections.Equivalence,org.graalvm.collections.UnmodifiableEconomicSet<{%%0}>) +meth public static <%0 extends java.lang.Object> org.graalvm.collections.EconomicSet<{%%0}> create(org.graalvm.collections.UnmodifiableEconomicSet<{%%0}>) +meth public void addAll(java.lang.Iterable<{org.graalvm.collections.EconomicSet%0}>) +meth public void addAll(java.util.Iterator<{org.graalvm.collections.EconomicSet%0}>) +meth public void addAll(org.graalvm.collections.EconomicSet<{org.graalvm.collections.EconomicSet%0}>) +meth public void removeAll(java.lang.Iterable<{org.graalvm.collections.EconomicSet%0}>) +meth public void removeAll(java.util.Iterator<{org.graalvm.collections.EconomicSet%0}>) +meth public void removeAll(org.graalvm.collections.EconomicSet<{org.graalvm.collections.EconomicSet%0}>) +meth public void retainAll(org.graalvm.collections.EconomicSet<{org.graalvm.collections.EconomicSet%0}>) + +CLSS public abstract org.graalvm.collections.Equivalence +cons protected init() +fld public final static org.graalvm.collections.Equivalence DEFAULT +fld public final static org.graalvm.collections.Equivalence IDENTITY +fld public final static org.graalvm.collections.Equivalence IDENTITY_WITH_SYSTEM_HASHCODE +meth public abstract boolean equals(java.lang.Object,java.lang.Object) +meth public abstract int hashCode(java.lang.Object) +supr java.lang.Object + +CLSS public abstract interface org.graalvm.collections.MapCursor<%0 extends java.lang.Object, %1 extends java.lang.Object> +intf org.graalvm.collections.UnmodifiableMapCursor<{org.graalvm.collections.MapCursor%0},{org.graalvm.collections.MapCursor%1}> +meth public abstract void remove() + +CLSS public final org.graalvm.collections.Pair<%0 extends java.lang.Object, %1 extends java.lang.Object> +meth public boolean equals(java.lang.Object) +meth public int hashCode() +meth public java.lang.String toString() +meth public static <%0 extends java.lang.Object, %1 extends java.lang.Object> org.graalvm.collections.Pair<{%%0},{%%1}> create({%%0},{%%1}) +meth public static <%0 extends java.lang.Object, %1 extends java.lang.Object> org.graalvm.collections.Pair<{%%0},{%%1}> createLeft({%%0}) +meth public static <%0 extends java.lang.Object, %1 extends java.lang.Object> org.graalvm.collections.Pair<{%%0},{%%1}> createRight({%%1}) +meth public static <%0 extends java.lang.Object, %1 extends java.lang.Object> org.graalvm.collections.Pair<{%%0},{%%1}> empty() +meth public {org.graalvm.collections.Pair%0} getLeft() +meth public {org.graalvm.collections.Pair%1} getRight() +supr java.lang.Object +hfds EMPTY,left,right + +CLSS public abstract interface org.graalvm.collections.UnmodifiableEconomicMap<%0 extends java.lang.Object, %1 extends java.lang.Object> +meth public abstract boolean containsKey({org.graalvm.collections.UnmodifiableEconomicMap%0}) +meth public abstract boolean isEmpty() +meth public abstract int size() +meth public abstract java.lang.Iterable<{org.graalvm.collections.UnmodifiableEconomicMap%0}> getKeys() +meth public abstract java.lang.Iterable<{org.graalvm.collections.UnmodifiableEconomicMap%1}> getValues() +meth public abstract org.graalvm.collections.UnmodifiableMapCursor<{org.graalvm.collections.UnmodifiableEconomicMap%0},{org.graalvm.collections.UnmodifiableEconomicMap%1}> getEntries() +meth public abstract {org.graalvm.collections.UnmodifiableEconomicMap%1} get({org.graalvm.collections.UnmodifiableEconomicMap%0}) +meth public {org.graalvm.collections.UnmodifiableEconomicMap%1} get({org.graalvm.collections.UnmodifiableEconomicMap%0},{org.graalvm.collections.UnmodifiableEconomicMap%1}) + +CLSS public abstract interface org.graalvm.collections.UnmodifiableEconomicSet<%0 extends java.lang.Object> +intf java.lang.Iterable<{org.graalvm.collections.UnmodifiableEconomicSet%0}> +meth public abstract boolean contains({org.graalvm.collections.UnmodifiableEconomicSet%0}) +meth public abstract boolean isEmpty() +meth public abstract int size() +meth public {org.graalvm.collections.UnmodifiableEconomicSet%0}[] toArray({org.graalvm.collections.UnmodifiableEconomicSet%0}[]) + +CLSS public abstract interface org.graalvm.collections.UnmodifiableMapCursor<%0 extends java.lang.Object, %1 extends java.lang.Object> +meth public abstract boolean advance() +meth public abstract {org.graalvm.collections.UnmodifiableMapCursor%0} getKey() +meth public abstract {org.graalvm.collections.UnmodifiableMapCursor%1} getValue() + CLSS public final !enum org.graalvm.options.OptionCategory fld public final static org.graalvm.options.OptionCategory DEBUG + anno 0 java.lang.Deprecated() fld public final static org.graalvm.options.OptionCategory EXPERT +fld public final static org.graalvm.options.OptionCategory INTERNAL fld public final static org.graalvm.options.OptionCategory USER meth public static org.graalvm.options.OptionCategory valueOf(java.lang.String) meth public static org.graalvm.options.OptionCategory[] values() @@ -143,9 +223,10 @@ meth public java.lang.String getName() meth public java.lang.String toString() meth public org.graalvm.options.OptionCategory getCategory() meth public org.graalvm.options.OptionKey getKey() +meth public org.graalvm.options.OptionStability getStability() meth public static <%0 extends java.lang.Object> org.graalvm.options.OptionDescriptor$Builder newBuilder(org.graalvm.options.OptionKey<{%%0}>,java.lang.String) supr java.lang.Object -hfds EMPTY,deprecated,help,key,kind,name +hfds EMPTY,deprecated,help,key,kind,name,stability CLSS public final org.graalvm.options.OptionDescriptor$Builder outer org.graalvm.options.OptionDescriptor @@ -153,8 +234,9 @@ meth public org.graalvm.options.OptionDescriptor build() meth public org.graalvm.options.OptionDescriptor$Builder category(org.graalvm.options.OptionCategory) meth public org.graalvm.options.OptionDescriptor$Builder deprecated(boolean) meth public org.graalvm.options.OptionDescriptor$Builder help(java.lang.String) +meth public org.graalvm.options.OptionDescriptor$Builder stability(org.graalvm.options.OptionStability) supr java.lang.Object -hfds category,deprecated,help,key,name +hfds category,deprecated,help,key,name,stability CLSS public abstract interface org.graalvm.options.OptionDescriptors fld public final static org.graalvm.options.OptionDescriptors EMPTY @@ -174,9 +256,20 @@ meth public {org.graalvm.options.OptionKey%0} getValue(org.graalvm.options.Optio supr java.lang.Object hfds defaultValue,type +CLSS public final !enum org.graalvm.options.OptionStability +fld public final static org.graalvm.options.OptionStability EXPERIMENTAL +fld public final static org.graalvm.options.OptionStability STABLE +meth public static org.graalvm.options.OptionStability valueOf(java.lang.String) +meth public static org.graalvm.options.OptionStability[] values() +supr java.lang.Enum + CLSS public final org.graalvm.options.OptionType<%0 extends java.lang.Object> +cons public init(java.lang.String,java.util.function.Function) +cons public init(java.lang.String,java.util.function.Function,java.util.function.Consumer<{org.graalvm.options.OptionType%0}>) cons public init(java.lang.String,{org.graalvm.options.OptionType%0},java.util.function.Function) + anno 0 java.lang.Deprecated() cons public init(java.lang.String,{org.graalvm.options.OptionType%0},java.util.function.Function,java.util.function.Consumer<{org.graalvm.options.OptionType%0}>) + anno 0 java.lang.Deprecated() meth public java.lang.String getName() meth public java.lang.String toString() meth public static <%0 extends java.lang.Object> org.graalvm.options.OptionType<{%%0}> defaultType(java.lang.Class<{%%0}>) @@ -184,8 +277,9 @@ meth public static <%0 extends java.lang.Object> org.graalvm.options.OptionType< meth public void validate({org.graalvm.options.OptionType%0}) meth public {org.graalvm.options.OptionType%0} convert(java.lang.String) meth public {org.graalvm.options.OptionType%0} getDefaultValue() + anno 0 java.lang.Deprecated() supr java.lang.Object -hfds DEFAULTTYPES,defaultValue,name,stringConverter,validator +hfds DEFAULTTYPES,name,stringConverter,validator CLSS public abstract interface org.graalvm.options.OptionValues meth public abstract <%0 extends java.lang.Object> void set(org.graalvm.options.OptionKey<{%%0}>,{%%0}) @@ -199,7 +293,9 @@ innr public final Builder intf java.lang.AutoCloseable meth public !varargs static org.graalvm.polyglot.Context create(java.lang.String[]) meth public !varargs static org.graalvm.polyglot.Context$Builder newBuilder(java.lang.String[]) +meth public boolean equals(java.lang.Object) meth public boolean initialize(java.lang.String) +meth public int hashCode() meth public org.graalvm.polyglot.Engine getEngine() meth public org.graalvm.polyglot.Value asValue(java.lang.Object) meth public org.graalvm.polyglot.Value eval(java.lang.String,java.lang.CharSequence) @@ -212,22 +308,28 @@ meth public void close(boolean) meth public void enter() meth public void leave() supr java.lang.Object -hfds EMPTY,impl +hfds ALL_HOST_CLASSES,EMPTY,NO_HOST_CLASSES,UNSET_HOST_LOOKUP,impl CLSS public final org.graalvm.polyglot.Context$Builder outer org.graalvm.polyglot.Context meth public org.graalvm.polyglot.Context build() meth public org.graalvm.polyglot.Context$Builder allowAllAccess(boolean) meth public org.graalvm.polyglot.Context$Builder allowCreateThread(boolean) +meth public org.graalvm.polyglot.Context$Builder allowExperimentalOptions(boolean) meth public org.graalvm.polyglot.Context$Builder allowHostAccess(boolean) + anno 0 java.lang.Deprecated() +meth public org.graalvm.polyglot.Context$Builder allowHostAccess(org.graalvm.polyglot.HostAccess) meth public org.graalvm.polyglot.Context$Builder allowHostClassLoading(boolean) +meth public org.graalvm.polyglot.Context$Builder allowHostClassLookup(java.util.function.Predicate) meth public org.graalvm.polyglot.Context$Builder allowIO(boolean) meth public org.graalvm.polyglot.Context$Builder allowNativeAccess(boolean) +meth public org.graalvm.polyglot.Context$Builder allowPolyglotAccess(org.graalvm.polyglot.PolyglotAccess) meth public org.graalvm.polyglot.Context$Builder arguments(java.lang.String,java.lang.String[]) meth public org.graalvm.polyglot.Context$Builder engine(org.graalvm.polyglot.Engine) meth public org.graalvm.polyglot.Context$Builder err(java.io.OutputStream) meth public org.graalvm.polyglot.Context$Builder fileSystem(org.graalvm.polyglot.io.FileSystem) meth public org.graalvm.polyglot.Context$Builder hostClassFilter(java.util.function.Predicate) + anno 0 java.lang.Deprecated() meth public org.graalvm.polyglot.Context$Builder in(java.io.InputStream) meth public org.graalvm.polyglot.Context$Builder logHandler(java.io.OutputStream) meth public org.graalvm.polyglot.Context$Builder logHandler(java.util.logging.Handler) @@ -236,7 +338,7 @@ meth public org.graalvm.polyglot.Context$Builder options(java.util.Map org.graalvm.polyglot.HostAccess$Builder targetTypeMapping(java.lang.Class<{%%0}>,java.lang.Class<{%%1}>,java.util.function.Predicate<{%%0}>,java.util.function.Function<{%%0},{%%1}>) +meth public org.graalvm.polyglot.HostAccess build() +meth public org.graalvm.polyglot.HostAccess$Builder allowAccess(java.lang.reflect.Executable) +meth public org.graalvm.polyglot.HostAccess$Builder allowAccess(java.lang.reflect.Field) +meth public org.graalvm.polyglot.HostAccess$Builder allowAccessAnnotatedBy(java.lang.Class) +meth public org.graalvm.polyglot.HostAccess$Builder allowAllImplementations(boolean) +meth public org.graalvm.polyglot.HostAccess$Builder allowArrayAccess(boolean) +meth public org.graalvm.polyglot.HostAccess$Builder allowImplementations(java.lang.Class) +meth public org.graalvm.polyglot.HostAccess$Builder allowImplementationsAnnotatedBy(java.lang.Class) +meth public org.graalvm.polyglot.HostAccess$Builder allowListAccess(boolean) +meth public org.graalvm.polyglot.HostAccess$Builder allowPublicAccess(boolean) +meth public org.graalvm.polyglot.HostAccess$Builder denyAccess(java.lang.Class) +meth public org.graalvm.polyglot.HostAccess$Builder denyAccess(java.lang.Class,boolean) +supr java.lang.Object +hfds accessAnnotations,allowAllImplementations,allowArrayAccess,allowListAccess,allowPublic,excludeTypes,implementableTypes,implementationAnnotations,members,name,targetMappings + +CLSS public abstract interface static !annotation org.graalvm.polyglot.HostAccess$Export + outer org.graalvm.polyglot.HostAccess + anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) + anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[CONSTRUCTOR, FIELD, METHOD]) +intf java.lang.annotation.Annotation + +CLSS public abstract interface static !annotation org.graalvm.polyglot.HostAccess$Implementable + outer org.graalvm.polyglot.HostAccess + anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) + anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[TYPE]) +intf java.lang.annotation.Annotation CLSS public final org.graalvm.polyglot.Instrument meth public <%0 extends java.lang.Object> {%%0} lookup(java.lang.Class<{%%0}>) @@ -291,6 +437,11 @@ meth public org.graalvm.options.OptionDescriptors getOptions() supr java.lang.Object hfds impl +CLSS public final org.graalvm.polyglot.PolyglotAccess +fld public final static org.graalvm.polyglot.PolyglotAccess ALL +fld public final static org.graalvm.polyglot.PolyglotAccess NONE +supr java.lang.Object + CLSS public final org.graalvm.polyglot.PolyglotException innr public final StackFrame meth public boolean equals(java.lang.Object) @@ -378,13 +529,14 @@ meth public org.graalvm.polyglot.Source$Builder cached(boolean) meth public org.graalvm.polyglot.Source$Builder content(java.lang.CharSequence) meth public org.graalvm.polyglot.Source$Builder content(java.lang.String) meth public org.graalvm.polyglot.Source$Builder content(org.graalvm.polyglot.io.ByteSequence) +meth public org.graalvm.polyglot.Source$Builder encoding(java.nio.charset.Charset) meth public org.graalvm.polyglot.Source$Builder interactive(boolean) meth public org.graalvm.polyglot.Source$Builder internal(boolean) meth public org.graalvm.polyglot.Source$Builder mimeType(java.lang.String) meth public org.graalvm.polyglot.Source$Builder name(java.lang.String) meth public org.graalvm.polyglot.Source$Builder uri(java.net.URI) supr java.lang.Object -hfds cached,content,interactive,internal,language,mimeType,name,origin,uri +hfds cached,content,fileEncoding,interactive,internal,language,mimeType,name,origin,uri CLSS public final org.graalvm.polyglot.SourceSection meth public boolean equals(java.lang.Object) @@ -470,6 +622,283 @@ meth public void setArrayElement(long,java.lang.Object) supr java.lang.Object hfds impl,receiver +CLSS public abstract org.graalvm.polyglot.impl.AbstractPolyglotImpl +cons protected init() +innr public abstract static APIAccess +innr public abstract static AbstractContextImpl +innr public abstract static AbstractEngineImpl +innr public abstract static AbstractExceptionImpl +innr public abstract static AbstractExecutionListenerImpl +innr public abstract static AbstractInstrumentImpl +innr public abstract static AbstractLanguageImpl +innr public abstract static AbstractSourceImpl +innr public abstract static AbstractSourceSectionImpl +innr public abstract static AbstractStackFrameImpl +innr public abstract static AbstractValueImpl +innr public abstract static MonitoringAccess +meth protected void initialize() +meth public abstract <%0 extends java.lang.Object, %1 extends java.lang.Object> java.lang.Object newTargetTypeMapping(java.lang.Class<{%%0}>,java.lang.Class<{%%1}>,java.util.function.Predicate<{%%0}>,java.util.function.Function<{%%0},{%%1}>) +meth public abstract java.lang.Class loadLanguageClass(java.lang.String) +meth public abstract java.nio.file.Path findHome() +meth public abstract java.util.Collection findActiveEngines() +meth public abstract org.graalvm.polyglot.Engine buildEngine(java.io.OutputStream,java.io.OutputStream,java.io.InputStream,java.util.Map,long,java.util.concurrent.TimeUnit,boolean,long,boolean,boolean,boolean,org.graalvm.polyglot.io.MessageTransport,java.lang.Object,org.graalvm.polyglot.HostAccess) +meth public abstract org.graalvm.polyglot.Value asValue(java.lang.Object) +meth public abstract org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractExecutionListenerImpl getExecutionListenerImpl() +meth public abstract org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractSourceImpl getSourceImpl() +meth public abstract org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractSourceSectionImpl getSourceSectionImpl() +meth public abstract void preInitializeEngine() +meth public abstract void resetPreInitializedEngine() +meth public final void setConstructors(org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess) +meth public final void setMonitoring(org.graalvm.polyglot.impl.AbstractPolyglotImpl$MonitoringAccess) +meth public org.graalvm.polyglot.Context getCurrentContext() +meth public org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess getAPIAccess() +meth public org.graalvm.polyglot.impl.AbstractPolyglotImpl$MonitoringAccess getMonitoring() +supr java.lang.Object +hfds api,monitoring + +CLSS public abstract static org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess + outer org.graalvm.polyglot.impl.AbstractPolyglotImpl +cons protected init() +meth public abstract boolean allowsAccess(org.graalvm.polyglot.HostAccess,java.lang.reflect.AnnotatedElement) +meth public abstract boolean allowsImplementation(org.graalvm.polyglot.HostAccess,java.lang.Class) +meth public abstract boolean isArrayAccessible(org.graalvm.polyglot.HostAccess) +meth public abstract boolean isListAccessible(org.graalvm.polyglot.HostAccess) +meth public abstract boolean useContextClassLoader() +meth public abstract java.lang.Object getHostAccessImpl(org.graalvm.polyglot.HostAccess) +meth public abstract java.lang.Object getReceiver(org.graalvm.polyglot.Value) +meth public abstract java.util.List getTargetMappings(org.graalvm.polyglot.HostAccess) +meth public abstract org.graalvm.polyglot.Context newContext(org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractContextImpl) +meth public abstract org.graalvm.polyglot.Engine newEngine(org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractEngineImpl) +meth public abstract org.graalvm.polyglot.Instrument newInstrument(org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractInstrumentImpl) +meth public abstract org.graalvm.polyglot.Language newLanguage(org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractLanguageImpl) +meth public abstract org.graalvm.polyglot.PolyglotException newLanguageException(java.lang.String,org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractExceptionImpl) +meth public abstract org.graalvm.polyglot.PolyglotException$StackFrame newPolyglotStackTraceElement(org.graalvm.polyglot.PolyglotException,org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractStackFrameImpl) +meth public abstract org.graalvm.polyglot.Source newSource(java.lang.String,java.lang.Object) +meth public abstract org.graalvm.polyglot.SourceSection newSourceSection(org.graalvm.polyglot.Source,java.lang.Object) +meth public abstract org.graalvm.polyglot.Value newValue(java.lang.Object,org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractValueImpl) +meth public abstract org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractEngineImpl getImpl(org.graalvm.polyglot.Engine) +meth public abstract org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractExceptionImpl getImpl(org.graalvm.polyglot.PolyglotException) +meth public abstract org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractInstrumentImpl getImpl(org.graalvm.polyglot.Instrument) +meth public abstract org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractLanguageImpl getImpl(org.graalvm.polyglot.Language) +meth public abstract org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractStackFrameImpl getImpl(org.graalvm.polyglot.PolyglotException$StackFrame) +meth public abstract org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractValueImpl getImpl(org.graalvm.polyglot.Value) +meth public abstract void setHostAccessImpl(org.graalvm.polyglot.HostAccess,java.lang.Object) +supr java.lang.Object + +CLSS public abstract static org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractContextImpl + outer org.graalvm.polyglot.impl.AbstractPolyglotImpl +cons protected init(org.graalvm.polyglot.impl.AbstractPolyglotImpl) +meth public abstract boolean initializeLanguage(java.lang.String) +meth public abstract org.graalvm.polyglot.Engine getEngineImpl(org.graalvm.polyglot.Context) +meth public abstract org.graalvm.polyglot.Value asValue(java.lang.Object) +meth public abstract org.graalvm.polyglot.Value eval(java.lang.String,java.lang.Object) +meth public abstract org.graalvm.polyglot.Value getBindings(java.lang.String) +meth public abstract org.graalvm.polyglot.Value getPolyglotBindings() +meth public abstract void close(org.graalvm.polyglot.Context,boolean) +meth public abstract void explicitEnter(org.graalvm.polyglot.Context) +meth public abstract void explicitLeave(org.graalvm.polyglot.Context) +supr java.lang.Object + +CLSS public abstract static org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractEngineImpl + outer org.graalvm.polyglot.impl.AbstractPolyglotImpl +cons protected init(org.graalvm.polyglot.impl.AbstractPolyglotImpl) +meth public abstract java.lang.String getImplementationName() +meth public abstract java.lang.String getVersion() +meth public abstract java.util.Map getInstruments() +meth public abstract java.util.Map getLanguages() +meth public abstract org.graalvm.options.OptionDescriptors getOptions() +meth public abstract org.graalvm.polyglot.Context createContext(java.io.OutputStream,java.io.OutputStream,java.io.InputStream,boolean,org.graalvm.polyglot.HostAccess,org.graalvm.polyglot.PolyglotAccess,boolean,boolean,boolean,boolean,boolean,java.util.function.Predicate,java.util.Map,java.util.Map,java.lang.String[],org.graalvm.polyglot.io.FileSystem,java.lang.Object) +meth public abstract org.graalvm.polyglot.Instrument requirePublicInstrument(java.lang.String) +meth public abstract org.graalvm.polyglot.Language requirePublicLanguage(java.lang.String) +meth public abstract void close(org.graalvm.polyglot.Engine,boolean) +supr java.lang.Object + +CLSS public abstract static org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractExceptionImpl + outer org.graalvm.polyglot.impl.AbstractPolyglotImpl +cons protected init(org.graalvm.polyglot.impl.AbstractPolyglotImpl) +meth public abstract boolean isCancelled() +meth public abstract boolean isExit() +meth public abstract boolean isHostException() +meth public abstract boolean isIncompleteSource() +meth public abstract boolean isInternalError() +meth public abstract boolean isSyntaxError() +meth public abstract int getExitStatus() +meth public abstract java.lang.Iterable getPolyglotStackTrace() +meth public abstract java.lang.StackTraceElement[] getStackTrace() +meth public abstract java.lang.String getMessage() +meth public abstract java.lang.Throwable asHostException() +meth public abstract org.graalvm.polyglot.SourceSection getSourceLocation() +meth public abstract org.graalvm.polyglot.Value getGuestObject() +meth public abstract void onCreate(org.graalvm.polyglot.PolyglotException) +meth public abstract void printStackTrace(java.io.PrintStream) +meth public abstract void printStackTrace(java.io.PrintWriter) +supr java.lang.Object + +CLSS public abstract static org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractExecutionListenerImpl + outer org.graalvm.polyglot.impl.AbstractPolyglotImpl +cons protected init(org.graalvm.polyglot.impl.AbstractPolyglotImpl) +meth public abstract boolean isExpression(java.lang.Object) +meth public abstract boolean isRoot(java.lang.Object) +meth public abstract boolean isStatement(java.lang.Object) +meth public abstract java.lang.Object attachExecutionListener(org.graalvm.polyglot.Engine,java.util.function.Consumer,java.util.function.Consumer,boolean,boolean,boolean,java.util.function.Predicate,java.util.function.Predicate,boolean,boolean,boolean) +meth public abstract java.lang.String getRootName(java.lang.Object) +meth public abstract java.util.List getInputValues(java.lang.Object) +meth public abstract org.graalvm.polyglot.PolyglotException getException(java.lang.Object) +meth public abstract org.graalvm.polyglot.SourceSection getLocation(java.lang.Object) +meth public abstract org.graalvm.polyglot.Value getReturnValue(java.lang.Object) +meth public abstract void closeExecutionListener(java.lang.Object) +supr java.lang.Object + +CLSS public abstract static org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractInstrumentImpl + outer org.graalvm.polyglot.impl.AbstractPolyglotImpl +cons protected init(org.graalvm.polyglot.impl.AbstractPolyglotImpl) +meth public abstract <%0 extends java.lang.Object> {%%0} lookup(java.lang.Class<{%%0}>) +meth public abstract java.lang.String getId() +meth public abstract java.lang.String getName() +meth public abstract java.lang.String getVersion() +meth public abstract org.graalvm.options.OptionDescriptors getOptions() +supr java.lang.Object + +CLSS public abstract static org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractLanguageImpl + outer org.graalvm.polyglot.impl.AbstractPolyglotImpl +cons protected init(org.graalvm.polyglot.impl.AbstractPolyglotImpl) +meth public abstract boolean isInteractive() +meth public abstract java.lang.String getDefaultMimeType() +meth public abstract java.lang.String getId() +meth public abstract java.lang.String getImplementationName() +meth public abstract java.lang.String getName() +meth public abstract java.lang.String getVersion() +meth public abstract java.util.Set getMimeTypes() +meth public abstract org.graalvm.options.OptionDescriptors getOptions() +supr java.lang.Object + +CLSS public abstract static org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractSourceImpl + outer org.graalvm.polyglot.impl.AbstractPolyglotImpl +cons protected init(org.graalvm.polyglot.impl.AbstractPolyglotImpl) +fld protected final org.graalvm.polyglot.impl.AbstractPolyglotImpl engineImpl +meth public abstract boolean equals(java.lang.Object,java.lang.Object) +meth public abstract boolean hasBytes(java.lang.Object) +meth public abstract boolean hasCharacters(java.lang.Object) +meth public abstract boolean isInteractive(java.lang.Object) +meth public abstract boolean isInternal(java.lang.Object) +meth public abstract int getColumnNumber(java.lang.Object,int) +meth public abstract int getLength(java.lang.Object) +meth public abstract int getLineCount(java.lang.Object) +meth public abstract int getLineLength(java.lang.Object,int) +meth public abstract int getLineNumber(java.lang.Object,int) +meth public abstract int getLineStartOffset(java.lang.Object,int) +meth public abstract int hashCode(java.lang.Object) +meth public abstract java.io.InputStream getInputStream(java.lang.Object) +meth public abstract java.io.Reader getReader(java.lang.Object) +meth public abstract java.lang.CharSequence getCode(java.lang.Object) +meth public abstract java.lang.CharSequence getCode(java.lang.Object,int) +meth public abstract java.lang.String findLanguage(java.io.File) throws java.io.IOException +meth public abstract java.lang.String findLanguage(java.lang.String) +meth public abstract java.lang.String findLanguage(java.net.URL) throws java.io.IOException +meth public abstract java.lang.String findMimeType(java.io.File) throws java.io.IOException +meth public abstract java.lang.String findMimeType(java.net.URL) throws java.io.IOException +meth public abstract java.lang.String getMimeType(java.lang.Object) +meth public abstract java.lang.String getName(java.lang.Object) +meth public abstract java.lang.String getPath(java.lang.Object) +meth public abstract java.lang.String toString(java.lang.Object) +meth public abstract java.net.URI getURI(java.lang.Object) +meth public abstract java.net.URL getURL(java.lang.Object) +meth public abstract org.graalvm.polyglot.Source build(java.lang.String,java.lang.Object,java.net.URI,java.lang.String,java.lang.String,java.lang.Object,boolean,boolean,boolean,java.nio.charset.Charset) throws java.io.IOException +meth public abstract org.graalvm.polyglot.io.ByteSequence getBytes(java.lang.Object) +supr java.lang.Object + +CLSS public abstract static org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractSourceSectionImpl + outer org.graalvm.polyglot.impl.AbstractPolyglotImpl +cons protected init(org.graalvm.polyglot.impl.AbstractPolyglotImpl) +meth public abstract boolean equals(java.lang.Object,java.lang.Object) +meth public abstract boolean hasCharIndex(java.lang.Object) +meth public abstract boolean hasColumns(java.lang.Object) +meth public abstract boolean hasLines(java.lang.Object) +meth public abstract boolean isAvailable(java.lang.Object) +meth public abstract int getCharEndIndex(java.lang.Object) +meth public abstract int getCharIndex(java.lang.Object) +meth public abstract int getCharLength(java.lang.Object) +meth public abstract int getEndColumn(java.lang.Object) +meth public abstract int getEndLine(java.lang.Object) +meth public abstract int getStartColumn(java.lang.Object) +meth public abstract int getStartLine(java.lang.Object) +meth public abstract int hashCode(java.lang.Object) +meth public abstract java.lang.CharSequence getCode(java.lang.Object) +meth public abstract java.lang.String toString(java.lang.Object) +supr java.lang.Object + +CLSS public abstract static org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractStackFrameImpl + outer org.graalvm.polyglot.impl.AbstractPolyglotImpl +cons protected init(org.graalvm.polyglot.impl.AbstractPolyglotImpl) +meth public abstract boolean isHostFrame() +meth public abstract java.lang.StackTraceElement toHostFrame() +meth public abstract java.lang.String getRootName() +meth public abstract java.lang.String toStringImpl(int) +meth public abstract org.graalvm.polyglot.Language getLanguage() +meth public abstract org.graalvm.polyglot.SourceSection getSourceLocation() +supr java.lang.Object + +CLSS public abstract static org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractValueImpl + outer org.graalvm.polyglot.impl.AbstractPolyglotImpl +cons protected init(org.graalvm.polyglot.impl.AbstractPolyglotImpl) +meth public abstract <%0 extends java.lang.Object> {%%0} as(java.lang.Object,java.lang.Class<{%%0}>) +meth public abstract <%0 extends java.lang.Object> {%%0} as(java.lang.Object,org.graalvm.polyglot.TypeLiteral<{%%0}>) +meth public abstract boolean asBoolean(java.lang.Object) +meth public abstract boolean removeArrayElement(java.lang.Object,long) +meth public abstract boolean removeMember(java.lang.Object,java.lang.String) +meth public abstract byte asByte(java.lang.Object) +meth public abstract double asDouble(java.lang.Object) +meth public abstract float asFloat(java.lang.Object) +meth public abstract int asInt(java.lang.Object) +meth public abstract java.lang.Object asHostObject(java.lang.Object) +meth public abstract java.lang.Object asProxyObject(java.lang.Object) +meth public abstract java.lang.String asString(java.lang.Object) +meth public abstract java.lang.String toString(java.lang.Object) +meth public abstract long asLong(java.lang.Object) +meth public abstract long asNativePointer(java.lang.Object) +meth public abstract long getArraySize(java.lang.Object) +meth public abstract org.graalvm.polyglot.SourceSection getSourceLocation(java.lang.Object) +meth public abstract org.graalvm.polyglot.Value execute(java.lang.Object) +meth public abstract org.graalvm.polyglot.Value execute(java.lang.Object,java.lang.Object[]) +meth public abstract org.graalvm.polyglot.Value getArrayElement(java.lang.Object,long) +meth public abstract org.graalvm.polyglot.Value getMember(java.lang.Object,java.lang.String) +meth public abstract org.graalvm.polyglot.Value getMetaObject(java.lang.Object) +meth public abstract org.graalvm.polyglot.Value invoke(java.lang.Object,java.lang.String) +meth public abstract org.graalvm.polyglot.Value invoke(java.lang.Object,java.lang.String,java.lang.Object[]) +meth public abstract org.graalvm.polyglot.Value newInstance(java.lang.Object,java.lang.Object[]) +meth public abstract short asShort(java.lang.Object) +meth public abstract void executeVoid(java.lang.Object) +meth public abstract void executeVoid(java.lang.Object,java.lang.Object[]) +meth public abstract void putMember(java.lang.Object,java.lang.String,java.lang.Object) +meth public abstract void setArrayElement(java.lang.Object,long,java.lang.Object) +meth public boolean canExecute(java.lang.Object) +meth public boolean canInstantiate(java.lang.Object) +meth public boolean canInvoke(java.lang.String,java.lang.Object) +meth public boolean fitsInByte(java.lang.Object) +meth public boolean fitsInDouble(java.lang.Object) +meth public boolean fitsInFloat(java.lang.Object) +meth public boolean fitsInInt(java.lang.Object) +meth public boolean fitsInLong(java.lang.Object) +meth public boolean fitsInShort(java.lang.Object) +meth public boolean hasArrayElements(java.lang.Object) +meth public boolean hasMember(java.lang.Object,java.lang.String) +meth public boolean hasMembers(java.lang.Object) +meth public boolean isBoolean(java.lang.Object) +meth public boolean isHostObject(java.lang.Object) +meth public boolean isNativePointer(java.lang.Object) +meth public boolean isNull(java.lang.Object) +meth public boolean isNumber(java.lang.Object) +meth public boolean isProxyObject(java.lang.Object) +meth public boolean isString(java.lang.Object) +meth public java.util.Set getMemberKeys(java.lang.Object) +supr java.lang.Object + +CLSS public abstract static org.graalvm.polyglot.impl.AbstractPolyglotImpl$MonitoringAccess + outer org.graalvm.polyglot.impl.AbstractPolyglotImpl +cons protected init() +meth public abstract org.graalvm.polyglot.management.ExecutionEvent newExecutionEvent(java.lang.Object) +supr java.lang.Object + CLSS public abstract interface org.graalvm.polyglot.io.ByteSequence meth public abstract byte byteAt(int) meth public abstract int length() @@ -493,7 +922,9 @@ meth public abstract java.nio.file.Path parsePath(java.lang.String) meth public abstract java.nio.file.Path parsePath(java.net.URI) meth public abstract java.nio.file.Path toAbsolutePath(java.nio.file.Path) meth public abstract void delete(java.nio.file.Path) throws java.io.IOException +meth public java.lang.String getMimeType(java.nio.file.Path) meth public java.lang.String getSeparator() +meth public java.nio.charset.Charset getEncoding(java.nio.file.Path) meth public java.nio.file.Path readSymbolicLink(java.nio.file.Path) throws java.io.IOException meth public void createLink(java.nio.file.Path,java.nio.file.Path) throws java.io.IOException meth public void setCurrentWorkingDirectory(java.nio.file.Path) @@ -587,12 +1018,6 @@ meth public abstract void putMember(java.lang.String,org.graalvm.polyglot.Value) meth public boolean removeMember(java.lang.String) meth public static org.graalvm.polyglot.proxy.ProxyObject fromMap(java.util.Map) -CLSS public abstract interface org.graalvm.polyglot.proxy.ProxyPrimitive - anno 0 java.lang.Deprecated() - anno 0 java.lang.FunctionalInterface() -intf org.graalvm.polyglot.proxy.Proxy -meth public abstract java.lang.Object asPrimitive() - CLSS public final org.netbeans.libs.graalsdk.GraalSDK supr java.lang.Object diff --git a/ide/libs.graalsdk/nbproject/project.properties b/ide/libs.graalsdk/nbproject/project.properties index 2410fa9be36b..ac88b7df2a0a 100644 --- a/ide/libs.graalsdk/nbproject/project.properties +++ b/ide/libs.graalsdk/nbproject/project.properties @@ -19,7 +19,7 @@ javac.source=1.8 javac.compilerargs=-Xlint -Xlint:-serial is.autoload=true -release.external/graal-sdk-1.0.0-rc12.jar=modules/ext/graal-sdk-1.0.0-rc12.jar +release.external/graal-sdk-19.0.0.jar=modules/ext/graal-sdk-19.0.0.jar javadoc.arch=${basedir}/arch.xml javadoc.apichanges=${basedir}/apichanges.xml diff --git a/ide/libs.graalsdk/nbproject/project.xml b/ide/libs.graalsdk/nbproject/project.xml index f946e59a1f59..e7c27540b086 100644 --- a/ide/libs.graalsdk/nbproject/project.xml +++ b/ide/libs.graalsdk/nbproject/project.xml @@ -30,7 +30,7 @@ - 1.0 + 1.2 @@ -80,8 +80,8 @@ org.netbeans.libs.graalsdk - ext/graal-sdk-1.0.0-rc12.jar - external/graal-sdk-1.0.0-rc12.jar + ext/graal-sdk-19.0.0.jar + external/graal-sdk-19.0.0.jar diff --git a/ide/libs.graalsdk/src/org/netbeans/libs/graalsdk/GraalSDK.java b/ide/libs.graalsdk/src/org/netbeans/libs/graalsdk/GraalSDK.java index aeda15b1f324..5df184465006 100644 --- a/ide/libs.graalsdk/src/org/netbeans/libs/graalsdk/GraalSDK.java +++ b/ide/libs.graalsdk/src/org/netbeans/libs/graalsdk/GraalSDK.java @@ -18,17 +18,48 @@ */ package org.netbeans.libs.graalsdk; +import java.util.List; import org.graalvm.polyglot.Context; +import org.graalvm.polyglot.Context.Builder; import org.graalvm.polyglot.Engine; +import org.graalvm.polyglot.HostAccess; /** * Integration of NetBeans Scripting * API and GraalVM; see the {@link org.netbeans.libs.graalsdk tutorial} for more details. + *

Security

*

- * As a secondary usecase, it is possible to request this module and gain access to - * {@code org.graalvm.polyglot} package directly. Consult {@link Context} and {@link Engine} + * By default all the GraalVM engines + * (named GraalVM:something) + * run in a very restricted, secure sandbox: + *

+ * {@codesnippet org.netbeans.libs.graalsdk.impl.GraalContext#SANDBOX} + *

+ * The languages cannot access local files, ports, etc. They can access public + * fields and public methods of objects passed into their scripts (but not + * those methods exposed by base {@link Object} class). The scripts can access + * elements of Java arrays and {@link List} elements. Methods of a + * {@linkplain FunctionalInterface functional interfaces} are callable by the + * scripts. + *

+ *

+ * For some languages such restrictions are too tight. They + * need to gain wider access. This can be done by setting allowAllAccess + * attribute to {@code true}: + *

+ * {@codesnippet org.netbeans.libs.graalsdk.ScriptingTutorial#allowAllAccess} + *

+ * Once enabled, the {@link HostAccess#ALL} and {@link Builder#allowAllAccess(boolean) allowAllAccess(true)} + * is then used to construct the engine's environment. + *

+ *

Polyglot API Access

+ *

+ * As a consequence of packaging the GraalVM APIs, it is possible to request this module and gain access to + * {@link org.graalvm.polyglot} package directly. Consult {@link Context} and {@link Engine} * classes as a starting points when - * accessing the Graal SDK polyglot API directly. + * accessing the Graal SDK directly. Preferably use only if the + * NetBeans Scripting + * API wrapper isn't good enough. */ public final class GraalSDK { private GraalSDK() { diff --git a/ide/libs.graalsdk/src/org/netbeans/libs/graalsdk/impl/GraalContext.java b/ide/libs.graalsdk/src/org/netbeans/libs/graalsdk/impl/GraalContext.java index 296c1cbbed07..9ca97224832f 100644 --- a/ide/libs.graalsdk/src/org/netbeans/libs/graalsdk/impl/GraalContext.java +++ b/ide/libs.graalsdk/src/org/netbeans/libs/graalsdk/impl/GraalContext.java @@ -22,6 +22,9 @@ import java.io.OutputStreamWriter; import java.io.Reader; import java.io.Writer; +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.lang.reflect.Proxy; import java.util.Collections; import java.util.List; import java.util.Map; @@ -29,16 +32,38 @@ import javax.script.ScriptContext; import javax.script.SimpleBindings; import org.graalvm.polyglot.Context; +import org.graalvm.polyglot.HostAccess; +import org.graalvm.polyglot.PolyglotAccess; import org.openide.util.io.ReaderInputStream; final class GraalContext implements ScriptContext { + private final static String ALLOW_ALL_ACCESS = "allowAllAccess"; // NOI18N private Context ctx; private final WriterOutputStream writer = new WriterOutputStream(new OutputStreamWriter(System.out)); private final WriterOutputStream errorWriter = new WriterOutputStream(new OutputStreamWriter(System.err)); private Reader reader; + private final Bindings globals; private SimpleBindings bindings; private boolean allowAllAccess; + // BEGIN: org.netbeans.libs.graalsdk.impl.GraalContext#SANDBOX + private static final HostAccess SANDBOX = HostAccess.newBuilder(). + allowPublicAccess(true). + allowArrayAccess(true). + allowListAccess(true). + allowAllImplementations(true). + denyAccess(Class.class). + denyAccess(Method.class). + denyAccess(Field.class). + denyAccess(Proxy.class). + denyAccess(Object.class, false). + build(); + // END: org.netbeans.libs.graalsdk.impl.GraalContext#SANDBOX + + GraalContext(Bindings globals) { + this.globals = globals; + } + synchronized final Context ctx() { if (ctx == null) { final Context.Builder b = Context.newBuilder(); @@ -51,15 +76,18 @@ synchronized final Context ctx() { throw raise(RuntimeException.class, ex); } } - if (allowAllAccess) { + b.allowPolyglotAccess(PolyglotAccess.ALL); + if (Boolean.TRUE.equals(getAttribute(ALLOW_ALL_ACCESS, ScriptContext.GLOBAL_SCOPE))) { + b.allowHostAccess(HostAccess.ALL); b.allowAllAccess(true); + } else { + b.allowHostAccess(SANDBOX); } ctx = b.build(); } return ctx; } - @Override public void setBindings(Bindings bindings, int scope) { throw new UnsupportedOperationException(); @@ -85,7 +113,7 @@ private void assertGlobalScope(int scope) throws IllegalArgumentException { @Override public void setAttribute(String name, Object value, int scope) { assertGlobalScope(scope); - if ("allowAllAccess".equals(name)) { // NOI18N + if (ALLOW_ALL_ACCESS.equals(name)) { if (this.ctx == null) { this.allowAllAccess = Boolean.TRUE.equals(value); return; @@ -98,10 +126,12 @@ public void setAttribute(String name, Object value, int scope) { @Override public Object getAttribute(String name, int scope) { assertGlobalScope(scope); - if ("allowAllAccess".equals(name)) { // NOI18N - return this.allowAllAccess; + if (ALLOW_ALL_ACCESS.equals(name)) { + if (this.allowAllAccess) { + return true; + } } - return null; + return globals == null ? null : globals.get(name); } @Override diff --git a/ide/libs.graalsdk/src/org/netbeans/libs/graalsdk/impl/GraalEngineFactory.java b/ide/libs.graalsdk/src/org/netbeans/libs/graalsdk/impl/GraalEngineFactory.java index 7f762b93cfdc..a60705a697a0 100644 --- a/ide/libs.graalsdk/src/org/netbeans/libs/graalsdk/impl/GraalEngineFactory.java +++ b/ide/libs.graalsdk/src/org/netbeans/libs/graalsdk/impl/GraalEngineFactory.java @@ -60,7 +60,7 @@ public List getMimeTypes() { @Override public List getNames() { - return Arrays.asList(language.getName()); + return Arrays.asList(language.getName(), getEngineName()); } @Override diff --git a/ide/libs.graalsdk/src/org/netbeans/libs/graalsdk/impl/GraalEnginesProvider.java b/ide/libs.graalsdk/src/org/netbeans/libs/graalsdk/impl/GraalEnginesProvider.java index 98072f8beca7..f8b15502888c 100644 --- a/ide/libs.graalsdk/src/org/netbeans/libs/graalsdk/impl/GraalEnginesProvider.java +++ b/ide/libs.graalsdk/src/org/netbeans/libs/graalsdk/impl/GraalEnginesProvider.java @@ -21,7 +21,9 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; +import javax.script.Bindings; import javax.script.ScriptEngineFactory; +import javax.script.ScriptEngineManager; import org.graalvm.polyglot.Engine; import org.graalvm.polyglot.Language; import org.netbeans.spi.scripting.EngineProvider; @@ -36,10 +38,15 @@ public GraalEnginesProvider() { @Override public List factories() { + return factories(null); + } + + @Override + public List factories(ScriptEngineManager m) { List arr = new ArrayList<>(); try { if (disable == null) { - enumerateLanguages(arr); + enumerateLanguages(arr, m == null ? null : m.getBindings()); } } catch (IllegalStateException | LinkageError err) { disable = err; @@ -47,8 +54,8 @@ public List factories() { return arr; } - private void enumerateLanguages(List arr) { - final GraalContext ctx = new GraalContext(); + private void enumerateLanguages(List arr, Bindings globals) { + final GraalContext ctx = new GraalContext(globals); try (Engine engine = Engine.newBuilder().build()) { for (Map.Entry entry : engine.getLanguages().entrySet()) { arr.add(new GraalEngineFactory(ctx, entry.getKey(), entry.getValue())); diff --git a/ide/libs.graalsdk/test/unit/src/org/netbeans/libs/graalsdk/JavaScriptEnginesTest.java b/ide/libs.graalsdk/test/unit/src/org/netbeans/libs/graalsdk/JavaScriptEnginesTest.java index 2b72f3f839dc..d142674a9904 100644 --- a/ide/libs.graalsdk/test/unit/src/org/netbeans/libs/graalsdk/JavaScriptEnginesTest.java +++ b/ide/libs.graalsdk/test/unit/src/org/netbeans/libs/graalsdk/JavaScriptEnginesTest.java @@ -25,9 +25,9 @@ import javax.script.Invocable; import javax.script.ScriptEngine; import javax.script.ScriptEngineFactory; +import javax.script.ScriptEngineManager; import javax.script.ScriptException; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; @@ -40,27 +40,59 @@ @RunWith(Parameterized.class) public class JavaScriptEnginesTest { - @Parameterized.Parameters(name = "{0}") + @Parameterized.Parameters(name = "{1}:{0}@{4}={2}") public static Object[][] engines() { List arr = new ArrayList<>(); - for (ScriptEngineFactory f : Scripting.createManager().getEngineFactories()) { + fillArray(Scripting.newBuilder().build(), false, arr); + final ScriptEngineManager man = Scripting.newBuilder().allowAllAccess(true).build(); + fillArray(man, true, arr); + return arr.toArray(new Object[0][]); + } + + private static void fillArray(final ScriptEngineManager man, boolean allowAllAccess, List arr) { + for (ScriptEngineFactory f : man.getEngineFactories()) { final String name = f.getEngineName(); if ( - f.getMimeTypes().contains("text/javascript") || - name.contains("Nashorn") - ) { - arr.add(new Object[] { name, f.getScriptEngine() }); + f.getMimeTypes().contains("text/javascript") || + name.contains("Nashorn") + ) { + final ScriptEngine eng = f.getScriptEngine(); + arr.add(new Object[] { name, "engineFactories", implName(eng), eng, allowAllAccess }); + for (String n : eng.getFactory().getNames()) { + ScriptEngine byName = n == null ? null : man.getEngineByName(n); + if (byName != null && eng.getClass() == byName.getClass()) { + arr.add(new Object[] { n, "name", implName(byName), byName, allowAllAccess }); + } + } + for (String t : eng.getFactory().getMimeTypes()) { + ScriptEngine byType = t == null ? null : man.getEngineByMimeType(t); + if (byType != null && eng.getClass() == byType.getClass()) { + arr.add(new Object[] { t, "type", implName(byType), byType, allowAllAccess }); + } + } + for (String e : eng.getFactory().getExtensions()) { + ScriptEngine byExt = e == null ? null : man.getEngineByExtension(e); + if (byExt != null && eng.getClass() == byExt.getClass()) { + arr.add(new Object[] { e, "ext", implName(byExt), byExt, allowAllAccess }); + } + } } } - return arr.toArray(new Object[0][]); + } + + private static String implName(Object obj) { + return obj.getClass().getSimpleName(); } private final String engineName; private final ScriptEngine engine; + private final boolean allowAllAccess; - public JavaScriptEnginesTest(String engineName, ScriptEngine engine) { + + public JavaScriptEnginesTest(String engineName, Object info, String implName, ScriptEngine engine, boolean allowAllAccess) { this.engineName = engineName; this.engine = engine; + this.allowAllAccess = allowAllAccess; } private Invocable inv() { @@ -116,7 +148,7 @@ public void globalMul() throws Exception { try { assertEquals("seventy seven", 77, global.mul(11, 7)); } catch (Exception ex) { - assertTrue("GraalVM:js exposes only exported symbols", engineName.equals("GraalVM:js")); + assertTrue("GraalVM:js exposes only exported symbols: " + engine.getFactory().getNames(), engine.getFactory().getNames().contains("GraalVM:js")); } assertEquals("mulExported is accessible in all engines", 77, global.mulExported(11, 7)); } @@ -140,7 +172,7 @@ public void exposeObject() throws Exception { Point point = inv().getInterface(rawPoint, Point.class); if (point == null) { - Assume.assumeFalse(engineName.contains("Nashorn")); + assumeNotNashorn(); } assertNotNull("Converted to typed interface", point); @@ -150,6 +182,23 @@ public void exposeObject() throws Exception { assertEquals("Power of sqrt(2) rounded", 2, point.z(1.42)); } + @Test + public void classOfString() throws Exception { + Assume.assumeFalse(allowAllAccess); + Object clazz = engine.eval("\n" + + "var s = '';\n" + + "var n;\n" + + "try {\n" + + " var c = s.getClass();\n" + + " n = c.getName();\n" + + "} catch (e) {\n" + + " n = null;\n" + + "}\n" + + "n\n" + ); + assertNull("No getClass attribute of string", clazz); + } + @Test public void accessJavaObject() throws Exception { Object fn = engine.eval("(function(obj) {\n" @@ -174,6 +223,23 @@ public void accessJavaObject() throws Exception { assertNotNull("There was an error calling non-public add method: " + sum.err, sum.err); } + @Test + public void classOfSum() throws Exception { + Assume.assumeFalse(allowAllAccess); + Assume.assumeFalse("GraalJSScriptEngine".equals(engine.getClass().getSimpleName())); + + Object fn = engine.eval("(function(obj) {\n" + + " try {\n" + + " return obj.getClass().getName();\n" + + " } catch (e) {\n" + + " return null;\n" + + " }\n" + + "})\n"); + Sum sum = new Sum(); + Object clazz = inv().invokeMethod(fn, "call", null, sum); + assertNull("No getClass attribute of string", clazz); + } + @Test public void sumArrayOfInt() throws Exception { assertSumArray(new int[] { 1, 2, 3, 4, 5, 6 }); @@ -218,7 +284,7 @@ public void returnArrayInJS() throws Exception { ArrayLike res = ((Invocable) engine).getInterface(raw, ArrayLike.class); if (res == null) { - Assume.assumeFalse(engineName.contains("Nashorn")); + assumeNotNashorn(); } assertNotNull("Result looks like array", res); @@ -231,6 +297,10 @@ public void returnArrayInJS() throws Exception { assertEquals(sum, list.get("4")); } + private void assumeNotNashorn() { + Assume.assumeFalse(engine.getFactory().getNames().contains("Nashorn")); + } + @Test public void nonInvocableInvoke() throws Exception { class ObscureObj { @@ -252,7 +322,7 @@ public void nonFunctionInvoke() throws Exception { try { Object res = ((Invocable) engine).invokeMethod(obj, "unknown"); fail("There is no such method unknown!" + res); - } catch (NoSuchMethodException ex) { + } catch (NullPointerException | NoSuchMethodException ex) { // OK } } diff --git a/ide/libs.graalsdk/test/unit/src/org/netbeans/libs/graalsdk/ScriptingTutorial.java b/ide/libs.graalsdk/test/unit/src/org/netbeans/libs/graalsdk/ScriptingTutorial.java index 7c2749edea4a..b2168820731f 100644 --- a/ide/libs.graalsdk/test/unit/src/org/netbeans/libs/graalsdk/ScriptingTutorial.java +++ b/ide/libs.graalsdk/test/unit/src/org/netbeans/libs/graalsdk/ScriptingTutorial.java @@ -214,6 +214,19 @@ interface BinomQuantile { } public void callRFunctionFromJava() throws Exception { + // BEGIN: org.netbeans.libs.graalsdk.ScriptingTutorial#allowAllAccess + // FastR currently needs access to native libraries: + final ScriptEngineManager manager = Scripting.newBuilder().allowAllAccess(true).build(); + ScriptEngine rEngine = manager.getEngineByMimeType("application/x-r"); + // END: org.netbeans.libs.graalsdk.ScriptingTutorial#allowAllAccess + + final Object funcRaw = rEngine.eval("qbinom"); + BinomQuantile func = ((Invocable) rEngine).getInterface(funcRaw, BinomQuantile.class); + assertEquals(4, func.qbinom(0.37, 10, 0.5)); + } + // END: org.netbeans.libs.graalsdk.ScriptingTutorial#callRFunctionFromJava + + public void testCallRFunctionFromJavaTheOldWay() throws Exception { ScriptEngine rEngine = Scripting.createManager().getEngineByMimeType("application/x-r"); // FastR currently needs access to native libraries: rEngine.getContext().setAttribute("allowAllAccess", true, ScriptContext.GLOBAL_SCOPE); @@ -222,7 +235,6 @@ public void callRFunctionFromJava() throws Exception { BinomQuantile func = ((Invocable) rEngine).getInterface(funcRaw, BinomQuantile.class); assertEquals(4, func.qbinom(0.37, 10, 0.5)); } - // END: org.netbeans.libs.graalsdk.ScriptingTutorial#callRFunctionFromJava public void testCallJavaScriptFunctionsWithSharedStateFromJava() throws Exception { callJavaScriptFunctionsWithSharedStateFromJava(); @@ -516,7 +528,7 @@ interface ParseJSON { } public void accessJavaScriptJSONObjectFromJava() throws Exception { - String src = + String src = "(function () { \n" + " return function() {\n" + " return [\n" + diff --git a/ide/o.apache.xml.resolver/build.xml b/ide/o.apache.xml.resolver/build.xml index 9d4f6f4db015..48c35e140141 100644 --- a/ide/o.apache.xml.resolver/build.xml +++ b/ide/o.apache.xml.resolver/build.xml @@ -50,7 +50,7 @@ + destdir="build/external-patch/classes" source="${javac.source}" target="${javac.target}"> diff --git a/nb/ide.branding/nbproject/project.xml b/nb/ide.branding/nbproject/project.xml index 0986f65b9093..33e3f7854a5f 100644 --- a/nb/ide.branding/nbproject/project.xml +++ b/nb/ide.branding/nbproject/project.xml @@ -28,6 +28,11 @@ unit + + org.netbeans.core.network + + + org.netbeans.core.ui diff --git a/nb/ide.branding/test/unit/src/org/netbeans/modules/ide/branding/RealPacEngineTest.java b/nb/ide.branding/test/unit/src/org/netbeans/modules/ide/branding/RealPacEngineTest.java new file mode 100644 index 000000000000..af73005820f4 --- /dev/null +++ b/nb/ide.branding/test/unit/src/org/netbeans/modules/ide/branding/RealPacEngineTest.java @@ -0,0 +1,49 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.netbeans.modules.ide.branding; + +import javax.script.ScriptEngine; +import junit.framework.Test; +import org.netbeans.core.network.proxy.pac.impl.NbPacScriptEvaluatorTest; +import org.netbeans.junit.NbModuleSuite; +import org.netbeans.junit.NbTestCase; + +public class RealPacEngineTest extends NbTestCase { + + public RealPacEngineTest(String name) { + super(name); + } + + public static Test suite() { + return NbModuleSuite.createConfiguration(RealPacEngineTest.class) + .clusters(".*") + .enableModules(".*") + .honorAutoloadEager(true) + .gui(false) + .suite(); + } + + public void testRealEngineForPacEvaluation() { + StringBuilder err = new StringBuilder(); + ScriptEngine eng = NbPacScriptEvaluatorTest.findDefaultEngineInTheSystem(err); + assertEquals("No error: " + err, 0, err.length()); + assertNotNull("Engine found", eng); + assertEquals("GraalVM:js", eng.getFactory().getEngineName()); + } +} diff --git a/nbbuild/antsrc/org/netbeans/nbbuild/extlibs/ConfigureProxy.java b/nbbuild/antsrc/org/netbeans/nbbuild/extlibs/ConfigureProxy.java new file mode 100644 index 000000000000..3b4960b550cd --- /dev/null +++ b/nbbuild/antsrc/org/netbeans/nbbuild/extlibs/ConfigureProxy.java @@ -0,0 +1,150 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.netbeans.nbbuild.extlibs; + +import java.io.IOException; +import java.net.InetSocketAddress; +import java.net.MalformedURLException; +import java.net.Proxy; +import java.net.URI; +import java.net.URISyntaxException; +import java.net.URL; +import java.net.URLConnection; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; +import org.apache.tools.ant.BuildException; +import org.apache.tools.ant.Project; +import org.apache.tools.ant.Task; + +public final class ConfigureProxy extends Task { + private URL connectTo; + private String hostProperty = "http.proxyHost"; + private String portProperty = "http.proxyPort"; + + public void setConnectTo(String uri) throws MalformedURLException { + connectTo = new URL(uri); + } + + public void setHostProperty(String host) { + hostProperty = host; + } + + public void setPortProperty(String port) { + portProperty = port; + } + + @Override + public void execute() throws BuildException { + try { + URI[] connectedVia = { null }; + URLConnection connect = openConnection(this, connectTo, connectedVia); + if (connect == null) { + throw new BuildException("Cannot connect to " + connectTo); + } + + if (connectedVia[0] != null) { + final String host = connectedVia[0].getHost(); + log(String.format("Setting %s to %s", hostProperty, host), Project.MSG_INFO); + getProject().setUserProperty(hostProperty, host); + final int port = connectedVia[0].getPort(); + log(String.format("Setting %s to %d", portProperty, port), Project.MSG_INFO); + getProject().setUserProperty(portProperty, "" + port); + } else { + log(String.format("Resetting %s to empty string", hostProperty), Project.MSG_INFO); + getProject().setUserProperty(hostProperty, ""); + getProject().setUserProperty(portProperty, "80"); + } + } catch (IOException ex) { + throw new BuildException(ex); + } + } + + static URLConnection openConnection(Task task, final URL url, URI[] connectedVia) throws IOException { + final URLConnection[] conn = { null }; + final List errs = new CopyOnWriteArrayList<>(); + final CountDownLatch connected = new CountDownLatch(1); + ExecutorService connectors = Executors.newFixedThreadPool(3); + connectors.submit(() -> { + String httpProxy = System.getenv("http_proxy"); + if (httpProxy != null) { + try { + URI uri = new URI(httpProxy); + InetSocketAddress address = InetSocketAddress.createUnresolved(uri.getHost(), uri.getPort()); + Proxy proxy = new Proxy(Proxy.Type.HTTP, address); + URLConnection test = url.openConnection(proxy); + test.connect(); + conn[0] = test; + connected.countDown(); + if (connectedVia != null) { + connectedVia[0] = uri; + } + } catch (IOException | URISyntaxException ex) { + errs.add(ex); + } + } + }); + connectors.submit(() -> { + String httpProxy = System.getenv("https_proxy"); + if (httpProxy != null) { + try { + URI uri = new URI(httpProxy); + InetSocketAddress address = InetSocketAddress.createUnresolved(uri.getHost(), uri.getPort()); + Proxy proxy = new Proxy(Proxy.Type.HTTP, address); + URLConnection test = url.openConnection(proxy); + test.connect(); + conn[0] = test; + connected.countDown(); + if (connectedVia != null) { + connectedVia[0] = uri; + } + } catch (IOException | URISyntaxException ex) { + errs.add(ex); + } + } + }); + connectors.submit(() -> { + try { + URLConnection test = url.openConnection(); + test.connect(); + conn[0] = test; + connected.countDown(); + } catch (IOException ex) { + errs.add(ex); + } + }); + try { + connected.await(5, TimeUnit.SECONDS); + } catch (InterruptedException ex) { + } + if (conn[0] == null) { + for (Exception ex : errs) { + task.log(ex, Project.MSG_ERR); + } + throw new IOException("Cannot connect to " + url); + } + return conn[0]; + } + +} diff --git a/nbbuild/antsrc/org/netbeans/nbbuild/extlibs/DownloadBinaries.java b/nbbuild/antsrc/org/netbeans/nbbuild/extlibs/DownloadBinaries.java index 5f46f73c4c8e..c6f1363ca9a7 100644 --- a/nbbuild/antsrc/org/netbeans/nbbuild/extlibs/DownloadBinaries.java +++ b/nbbuild/antsrc/org/netbeans/nbbuild/extlibs/DownloadBinaries.java @@ -266,7 +266,7 @@ private byte[] legacyDownload(String cacheName) throws IOException { private byte[] downloadFromServer(URL url) throws IOException { log("Downloading: " + url); - URLConnection conn = openConnection(url); + URLConnection conn = ConfigureProxy.openConnection(this, url, null); int code = HttpURLConnection.HTTP_OK; if (conn instanceof HttpURLConnection) { code = ((HttpURLConnection) conn).getResponseCode(); @@ -293,68 +293,6 @@ interface Downloader { public byte[] download() throws IOException; } - private URLConnection openConnection(final URL url) throws IOException { - final URLConnection[] conn = { null }; - final CountDownLatch connected = new CountDownLatch(1); - ExecutorService connectors = Executors.newFixedThreadPool(3); - connectors.submit(new Runnable() { - public void run() { - String httpProxy = System.getenv("http_proxy"); - if (httpProxy != null) { - try { - URI uri = new URI(httpProxy); - InetSocketAddress address = InetSocketAddress.createUnresolved(uri.getHost(), uri.getPort()); - Proxy proxy = new Proxy(Proxy.Type.HTTP, address); - URLConnection test = url.openConnection(proxy); - test.connect(); - conn[0] = test; - connected.countDown(); - } catch (IOException | URISyntaxException ex) { - log(ex, Project.MSG_ERR); - } - } - } - }); - connectors.submit(new Runnable() { - public void run() { - String httpProxy = System.getenv("https_proxy"); - if (httpProxy != null) { - try { - URI uri = new URI(httpProxy); - InetSocketAddress address = InetSocketAddress.createUnresolved(uri.getHost(), uri.getPort()); - Proxy proxy = new Proxy(Proxy.Type.HTTP, address); - URLConnection test = url.openConnection(proxy); - test.connect(); - conn[0] = test; - connected.countDown(); - } catch (IOException | URISyntaxException ex) { - log(ex, Project.MSG_ERR); - } - } - } - }); - connectors.submit(new Runnable() { - public void run() { - try { - URLConnection test = url.openConnection(); - test.connect(); - conn[0] = test; - connected.countDown(); - } catch (IOException ex) { - log(ex, Project.MSG_ERR); - } - } - }); - try { - connected.await(5, TimeUnit.SECONDS); - } catch (InterruptedException ex) { - } - if (conn[0] == null) { - throw new IOException("Cannot connect to " + url); - } - return conn[0]; - } - private String hash(File f) { try { try (FileInputStream is = new FileInputStream(f)) { diff --git a/nbbuild/javadoctools/links.xml b/nbbuild/javadoctools/links.xml index 17251277e9f2..a5f8c1ddbe39 100644 --- a/nbbuild/javadoctools/links.xml +++ b/nbbuild/javadoctools/links.xml @@ -235,3 +235,4 @@ + diff --git a/nbbuild/javadoctools/truffle/package-list b/nbbuild/javadoctools/truffle/package-list new file mode 100644 index 000000000000..8ce03d9caa28 --- /dev/null +++ b/nbbuild/javadoctools/truffle/package-list @@ -0,0 +1,28 @@ +com.oracle.truffle.api +com.oracle.truffle.api.debug +com.oracle.truffle.api.dsl +com.oracle.truffle.api.frame +com.oracle.truffle.api.instrumentation +com.oracle.truffle.api.interop +com.oracle.truffle.api.library +com.oracle.truffle.api.nodes +com.oracle.truffle.api.object +com.oracle.truffle.api.object.dsl +com.oracle.truffle.api.profiles +com.oracle.truffle.api.source +com.oracle.truffle.api.utilities +org.graalvm.collections +org.graalvm.nativeimage +org.graalvm.nativeimage.c +org.graalvm.nativeimage.c.constant +org.graalvm.nativeimage.c.function +org.graalvm.nativeimage.c.struct +org.graalvm.nativeimage.c.type +org.graalvm.nativeimage.hosted +org.graalvm.options +org.graalvm.polyglot +org.graalvm.polyglot.io +org.graalvm.polyglot.management +org.graalvm.polyglot.proxy +org.graalvm.polyglot.tck +org.graalvm.word diff --git a/nbbuild/travis/scripting.sh b/nbbuild/travis/scripting.sh index ab26c622fefd..3ce560b8dbf8 100755 --- a/nbbuild/travis/scripting.sh +++ b/nbbuild/travis/scripting.sh @@ -20,8 +20,9 @@ set -e if [ -z "$GRAALVM" ]; then - BASE=graalvm-ce-1.0.0-rc12 - URL=https://github.com/oracle/graal/releases/download/vm-1.0.0-rc12/$BASE-linux-amd64.tar.gz + VERSION=19.0.0 + BASE=graalvm-ce-$VERSION + URL=https://github.com/oracle/graal/releases/download/vm-$VERSION/graalvm-ce-linux-amd64-$VERSION.tar.gz curl -L $URL --output graalvm.tgz tar fxz graalvm.tgz GRAALVM=`pwd`/$BASE @@ -31,13 +32,8 @@ fi ant -f platform/api.scripting/build.xml test ant -f ide/libs.graalsdk/build.xml test -# may also following Graal fixes: -# commit 6c2ea38719a68fb8bb258a8acf76420d0e99a963 -# Also query the contextClassLoader for available languages -# commit e38aa347e1de8f8f0474247eb90d193e5ea373d0 -# Always try to locate the implementation by service loader -# ant -f webcommon/libs.graaljs/build.xml test +ant -f platform/core.network/build.xml test ant -f profiler/profiler.oql/build.xml test ant -f platform/api.htmlui/build.xml test @@ -49,6 +45,7 @@ $GRAALVM/bin/gu install R JAVA_HOME=$GRAALVM ant -f platform/api.scripting/build.xml test JAVA_HOME=$GRAALVM ant -f ide/libs.graalsdk/build.xml test +JAVA_HOME=$GRAALVM ant -f platform/core.network/build.xml test JAVA_HOME=$GRAALVM ant -f webcommon/libs.graaljs/build.xml test JAVA_HOME=$GRAALVM ant -f profiler/profiler.oql/build.xml test diff --git a/platform/api.scripting/apichanges.xml b/platform/api.scripting/apichanges.xml index 36d93c46b817..3ce0e4585e80 100644 --- a/platform/api.scripting/apichanges.xml +++ b/platform/api.scripting/apichanges.xml @@ -30,6 +30,24 @@ + + +

+ Scripting is now a builder! + + + + + + + Use + Scripting.newBuilder().build() + to obtain enhanced and secured version of + ScriptEngineManager. + + + + diff --git a/platform/api.scripting/arch.xml b/platform/api.scripting/arch.xml index 46f415586ed7..d9c571e65285 100644 --- a/platform/api.scripting/arch.xml +++ b/platform/api.scripting/arch.xml @@ -34,11 +34,11 @@ @@ -260,7 +260,7 @@ versions of itself? Can you correctly read all old settings? Will future versions be able to read your current settings? Can you read or politely ignore settings stored by a future version? - + Very helpful for reading settings is to store version number there, so future versions can decide whether how to read/convert @@ -280,7 +280,7 @@ Which version of JRE do you need (1.2, 1.3, 1.4, etc.)? - It is expected that if your module runs on 1.x that it will run + It is expected that if your module runs on 1.x that it will run on 1.x+1 if no, state that please. Also describe here cases where you run different code on different versions of JRE and why. @@ -337,7 +337,7 @@

+ + If Scripting.allowAllAccess + is used, then a property allowAllAccess is placed into the + ScriptManager.getBindings() with value true. +

@@ -575,7 +580,7 @@ @@ -1019,9 +1024,9 @@ @@ -1064,7 +1069,7 @@ Does your module mask/hide/override any resources provided by other modules in their layers? - + If you mask a file provided by another module, you probably depend on that and do not want the other module to (for example) change @@ -1084,7 +1089,7 @@ -

- Yes. It detects the presence of Nashorn (as opposed to say Rhino) by way - of reflection. In particular it needs to know if the Java version is - Java 8u40 as Nashorn was greatly enhanced in that update and was more - or less useless (for our purpose) before this time. The use of reflection - means the code will gracefully 'degrade' to whatever script engine is - available if we are not on Java 8u40 or later. -

For testing only a dirty hack is used in our FakeDns class. This installs itself as a preferred name service in Java. This is done diff --git a/platform/core.network/manifest.mf b/platform/core.network/manifest.mf index 6f84851ecf90..859f40585f89 100644 --- a/platform/core.network/manifest.mf +++ b/platform/core.network/manifest.mf @@ -2,5 +2,5 @@ Manifest-Version: 1.0 OpenIDE-Module: org.netbeans.core.network OpenIDE-Module-Localizing-Bundle: org/netbeans/core/network/proxy/Bundle.properties OpenIDE-Module-Provides: org.netbeans.core.ProxySettings.Reloader -OpenIDE-Module-Specification-Version: 1.16 - +OpenIDE-Module-Specification-Version: 1.17 +OpenIDE-Module-Recommends: javax.script.ScriptEngine.js diff --git a/platform/core.network/nbproject/project.xml b/platform/core.network/nbproject/project.xml index 0fe2742bcc5b..74f87b2e8b7b 100644 --- a/platform/core.network/nbproject/project.xml +++ b/platform/core.network/nbproject/project.xml @@ -34,6 +34,14 @@ 1.28 + + org.netbeans.api.scripting + + + + 1.2 + + org.netbeans.core @@ -94,7 +102,7 @@ - org.openide.util.ui + org.openide.util @@ -102,19 +110,19 @@ - org.openide.util + org.openide.util.lookup - 9.3 + 8.20 - org.openide.util.lookup + org.openide.util.ui - 8.20 + 9.3 diff --git a/platform/core.network/src/org/netbeans/core/network/proxy/NetworkProxyReloader.java b/platform/core.network/src/org/netbeans/core/network/proxy/NetworkProxyReloader.java index e4bd41092dba..20ddc9d57685 100644 --- a/platform/core.network/src/org/netbeans/core/network/proxy/NetworkProxyReloader.java +++ b/platform/core.network/src/org/netbeans/core/network/proxy/NetworkProxyReloader.java @@ -78,8 +78,9 @@ public static void reloadNetworkProxy() { } else { LOGGER.log(Level.INFO, "System network proxy reloading succeeded."); //NOI18N } - - switch (networkProxySettings.getProxyMode()) { + + NetworkProxySettings.ProxyMode mode = networkProxySettings.getProxyMode(); + switch (mode) { case AUTO: final ProxyAutoConfig pacForTest = ProxyAutoConfig.get(networkProxySettings.getPacFileUrl()); List testHttpProxy = null; diff --git a/platform/core.network/src/org/netbeans/core/network/proxy/ProxyAutoConfig.java b/platform/core.network/src/org/netbeans/core/network/proxy/ProxyAutoConfig.java index 5825235c2370..504a27087c4d 100644 --- a/platform/core.network/src/org/netbeans/core/network/proxy/ProxyAutoConfig.java +++ b/platform/core.network/src/org/netbeans/core/network/proxy/ProxyAutoConfig.java @@ -58,7 +58,7 @@ public static synchronized ProxyAutoConfig get(String pacFile) { try { instance = new ProxyAutoConfig(pacFile); } catch (URISyntaxException ex) { - Logger.getLogger(ProxyAutoConfig.class.getName()).warning("Parsing " + pacFile + " to URI throws " + ex); + LOGGER.warning("Parsing " + pacFile + " to URI throws " + ex); } finally { file2pac.put(pacFile, instance); } @@ -88,7 +88,7 @@ public URI getPacURI() { return pacURI; } - private void initEngine() { + final void initEngine() { String pacSource = null; if (pacURI.isAbsolute()) { try (InputStream is = downloadPAC(pacURI.toURL())) { diff --git a/platform/core.network/src/org/netbeans/core/network/proxy/pac/PacScriptEvaluator.java b/platform/core.network/src/org/netbeans/core/network/proxy/pac/PacScriptEvaluator.java index ad3d755f3d64..2aff48a4e0c1 100644 --- a/platform/core.network/src/org/netbeans/core/network/proxy/pac/PacScriptEvaluator.java +++ b/platform/core.network/src/org/netbeans/core/network/proxy/pac/PacScriptEvaluator.java @@ -70,7 +70,7 @@ public interface PacScriptEvaluator { /** * Gets relevant information about the engine, typically the name - * of the JavaScript engine (e.g. 'Nashorn'), version number, etc. + * of the JavaScript engine, version number, etc. * @return info */ public String getEngineInfo(); diff --git a/platform/core.network/src/org/netbeans/core/network/proxy/pac/datetime/PacUtilsDateTime.java b/platform/core.network/src/org/netbeans/core/network/proxy/pac/datetime/PacUtilsDateTime.java index e08d2ce950d5..c5276616dd20 100644 --- a/platform/core.network/src/org/netbeans/core/network/proxy/pac/datetime/PacUtilsDateTime.java +++ b/platform/core.network/src/org/netbeans/core/network/proxy/pac/datetime/PacUtilsDateTime.java @@ -320,7 +320,7 @@ private static Calendar getCalendar(Date now, boolean useGMT) { * {@link PacHelperMethodsNetscape#weekdayRange(java.lang.Object...) weekdayRange()} * *

- * Note: In Nashorn, JavaScript function arguments that are not used in the + * Note: In some engines, JavaScript function arguments that are not used in the * call will have a type of {@code Undefined}. * * @param objs diff --git a/platform/core.network/src/org/netbeans/core/network/proxy/pac/impl/ClassFilterPacHelpers.java b/platform/core.network/src/org/netbeans/core/network/proxy/pac/impl/ClassFilterPacHelpers.java deleted file mode 100644 index 7c5a742b2fce..000000000000 --- a/platform/core.network/src/org/netbeans/core/network/proxy/pac/impl/ClassFilterPacHelpers.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.netbeans.core.network.proxy.pac.impl; - -import jdk.nashorn.api.scripting.ClassFilter; -import org.netbeans.core.network.proxy.pac.PacHelperMethods; - -/** - * Nashorn class filter which helps us create a sandboxed JavaScript execution - * environment which only has access to the Helper methods, nothing more. - * - *

Note that the ClassFilter feature is specific to Nashorn (Rhino had the - * {@code ClassShutter} class for this purpose), but the feature did not appear - * until Java 8u40. - * - * @author lbruun - */ -class ClassFilterPacHelpers implements ClassFilter { - - @Override - public boolean exposeToScripts(String string) { - // The only Java class the PAC script is allowed to - // make use of is the PAC Helpers, nothing more. - return string.equals(PacHelperMethods.class.getName()); - } -} diff --git a/platform/core.network/src/org/netbeans/core/network/proxy/pac/impl/NbPacScriptEvaluator.java b/platform/core.network/src/org/netbeans/core/network/proxy/pac/impl/NbPacScriptEvaluator.java index 8b7f384d80b2..11c97b41c066 100644 --- a/platform/core.network/src/org/netbeans/core/network/proxy/pac/impl/NbPacScriptEvaluator.java +++ b/platform/core.network/src/org/netbeans/core/network/proxy/pac/impl/NbPacScriptEvaluator.java @@ -35,8 +35,7 @@ import javax.script.ScriptEngineFactory; import javax.script.ScriptEngineManager; import javax.script.ScriptException; -import jdk.nashorn.api.scripting.NashornScriptEngineFactory; -import jdk.nashorn.api.scripting.ScriptObjectMirror; +import org.netbeans.api.scripting.Scripting; import org.netbeans.core.network.utils.SimpleObjCache; import org.netbeans.core.network.proxy.pac.PacHelperMethods; import org.netbeans.core.network.proxy.pac.PacJsEntryFunction; @@ -46,16 +45,17 @@ import org.netbeans.core.network.proxy.pac.PacScriptEvaluator; import org.netbeans.core.network.proxy.pac.PacUtils; import org.openide.util.Lookup; +import org.openide.util.NbBundle; /** * NetBeans implementation of a PAC script evaluator. This implementation * is the one returned by {@link NbPacScriptEvaluatorFactory}. - * + * *

Features comparison

* There are differences between how browsers have implemented the PAC * evaluation functionality. In the following the Apache NetBeans implementation * (this class) is pitched against some of the major browsers.

- * + * * * * @@ -148,31 +148,31 @@ * * *
BehaviorApache
NetBeans
???
- * 1) The following is removed: {@code user-info} and everything after the - * host name, however the value passed to the script always ends with a '/' + * 1) The following is removed: {@code user-info} and everything after the + * host name, however the value passed to the script always ends with a '/' * character.
* 2) Same as (1), except that {@code user-info} is not removed.
- * 3) However, when converted to Java {@link java.net.Proxy} object, all return - * types must be mapped to Java Proxy types {@code DIRECT}, + * 3) However, when converted to Java {@link java.net.Proxy} object, all return + * types must be mapped to Java Proxy types {@code DIRECT}, * {@code HTTP} and {@code SOCKS}, which means some finer grained information * is lost. (but is irrelevant)
- * 4) An implementation not using an explicit timeout will be at the mercy of - * the underlying OS or runtime environment. For example, for 2 name servers, + * 4) An implementation not using an explicit timeout will be at the mercy of + * the underlying OS or runtime environment. For example, for 2 name servers, * the default timeout in JRE is 30 seconds.
- * 5) If date/time functions ({@code weekdayRange()}, {@code dateRange()} and - * {@code timeRange()}) allow values that crosses a value boundary. - * For example {@code timeRange(22,3}) for the range from 10 pm to 3 am, or + * 5) If date/time functions ({@code weekdayRange()}, {@code dateRange()} and + * {@code timeRange()}) allow values that crosses a value boundary. + * For example {@code timeRange(22,3}) for the range from 10 pm to 3 am, or * {@code dateRange("DEC","MAR"}) for the range from Dec 1st to March 31st.
* 6) How good is the {@code myIpAddress()} (or {@code myIpAddressEx()}) function * at finding the host's correct IP address, in particular on a multi-homed * computer. * *

Customization

- * The implementation for + * The implementation for * {@link org.netbeans.core.network.proxy.pac.PacHelperMethods PacHelperMethods} is * found via the global lookup. If you are unhappy with the implementation * of the Helper Functions you can replace with your own. - * + * * @author lbruun */ public class NbPacScriptEvaluator implements PacScriptEvaluator { @@ -183,7 +183,7 @@ public class NbPacScriptEvaluator implements PacScriptEvaluator { private final boolean canUseURLCaching; private final PacScriptEngine scriptEngine; private final SimpleObjCache> resultCache; - + private static final String PAC_PROXY = "PROXY"; private static final String PAC_DIRECT = "DIRECT"; private static final String PAC_SOCKS = "SOCKS"; @@ -191,13 +191,11 @@ public class NbPacScriptEvaluator implements PacScriptEvaluator { private static final String PAC_SOCKS5_FFEXT = "SOCKS5"; // Mozilla Firefox extension. Not part of original Netscape spec. private static final String PAC_HTTP_FFEXT = "HTTP"; // Mozilla Firefox extension. Not part of original Netscape spec. private static final String PAC_HTTPS_FFEXT = "HTTPS"; // Mozilla Firefox extension. Not part of original Netscape spec. - private final boolean nashornJava8u40Available; private final String pacScriptSource; public NbPacScriptEvaluator(String pacSourceCocde) throws PacParsingException { this.pacScriptSource = pacSourceCocde; - nashornJava8u40Available = getNashornJava8u40Available(); scriptEngine = getScriptEngine(pacSourceCocde); canUseURLCaching = !usesTimeDateFunctions(pacSourceCocde); if (canUseURLCaching) { @@ -211,7 +209,7 @@ public NbPacScriptEvaluator(String pacSourceCocde) throws PacParsingException { public List findProxyForURL(URI uri) throws PacValidationException { List jsResultAnalyzed; - + // First try the cache if (resultCache != null) { jsResultAnalyzed = resultCache.get(uri); @@ -220,14 +218,14 @@ public List findProxyForURL(URI uri) throws PacValidationException { } } try { - Object jsResult = scriptEngine.findProxyForURL(PacUtils.toStrippedURLStr(uri), uri.getHost()); + Object jsResult = scriptEngine.findProxyForURL(PacUtils.toStrippedURLStr(uri), uri.getHost()); jsResultAnalyzed = analyzeResult(uri, jsResult); if (canUseURLCaching && (resultCache != null)) { resultCache.put(uri, jsResultAnalyzed); // save the result in the cache } return jsResultAnalyzed; } catch (NoSuchMethodException ex) { - // If this exception occur at this time it is really, really unexpected. + // If this exception occur at this time it is really, really unexpected. // We already gave the function a test spin in the constructor. Exceptions.printStackTrace(ex); return Collections.singletonList(Proxy.NO_PROXY); @@ -268,22 +266,21 @@ public String getEngineInfo() { public String getPacScriptSource() { return this.pacScriptSource; } - - + + private PacScriptEngine getScriptEngine(String pacSource) throws PacParsingException { try { - ScriptEngine engine; - if (nashornJava8u40Available) { - engine = getNashornJSScriptEngine(); - } else { - engine = getGenericJSScriptEngine(); + StringBuilder err = new StringBuilder(); + ScriptEngine engine = newAllowedPacEngine(err); + if (engine == null) { + throw new PacParsingException(err.toString()); } - + LOGGER.log(Level.FINE, "PAC script evaluator using: {0}", getEngineInfo(engine)); - - + + PacHelperMethods pacHelpers = Lookup.getDefault().lookup(PacHelperMethods.class); if (pacHelpers == null) { // this should be redundant but we take no chances pacHelpers = new NbPacHelperMethods(); @@ -322,7 +319,7 @@ private PacScriptEngine getScriptEngine(String pacSource) throws PacParsingExcep throw new ScriptException(ex); } - + engine.eval(pacSource); String helperJSScript = HelperScriptFactory.getPacHelperSource(); @@ -336,41 +333,51 @@ private PacScriptEngine getScriptEngine(String pacSource) throws PacParsingExcep // Do some minimal testing of the validity of the PAC Script. final PacJsEntryFunction jsMainFunction; - if (nashornJava8u40Available) { - jsMainFunction = testScriptEngine(engine, true); - } else { - jsMainFunction = testScriptEngine(engine, false); - } - + jsMainFunction = testScriptEngine(engine, false); + return new PacScriptEngine(engine, jsMainFunction); } catch (ScriptException ex) { throw new PacParsingException(ex); } } - - private boolean getNashornJava8u40Available() { - try { - Class klass = Class.forName("jdk.nashorn.api.scripting.NashornScriptEngineFactory"); - } catch (ClassNotFoundException ex) { - return false; - } - return true; + + @NbBundle.Messages({ + "ALLOWED_PAC_ENGINES=GraalVM:js,Graal.js,Nashorn" + }) + private static ScriptEngine newAllowedPacEngine(StringBuilder err) { + return newAllowedPacEngine(null, err); } - - private ScriptEngine getNashornJSScriptEngine() { - NashornScriptEngineFactory factory = new NashornScriptEngineFactory(); - return factory.getScriptEngine(new ClassFilterPacHelpers()); + + public static ScriptEngine newAllowedPacEngine(String allowedEngines, StringBuilder err) { + if (allowedEngines == null) { + allowedEngines = Bundle.ALLOWED_PAC_ENGINES(); + } + ScriptEngineManager manager = Scripting.newBuilder().build(); + for (String allowedEngine : allowedEngines.split(",")) { // NOI18N + ScriptEngine engine = manager.getEngineByName(allowedEngine); + if (engine != null) { + return engine; + } + } + if (err != null) { + logWarning(err, allowedEngines, manager); + } + return null; } - - private ScriptEngine getGenericJSScriptEngine() { - // The result of the statements below may be Rhino, but more likely - // - since Java 8 - it will be a Nashorn engine. - ScriptEngineManager factory = new ScriptEngineManager(); - return factory.getEngineByName("JavaScript"); + + private static void logWarning(StringBuilder sb, String allowedEngines, ScriptEngineManager manager) { + sb.append("Cannot find secure PAC script engine.\n"); // NOI18N + sb.append("Allowed engines: ").append(allowedEngines).append("\n"); // NOI18N + sb.append("Found engines:\n"); // NOI18N + for (ScriptEngineFactory f : manager.getEngineFactories()) { + sb.append(" ").append(f.getEngineName()).append("\n"); // NOI18N + } + sb.append("Will not resolve proxy configuration.\n"); // NOI18N + sb.append("Brand ALLOWED_PAC_ENGINES key in org.netbeans.core.network.proxy.pac.impl.Bundle to configure.\n"); // NOI18N } - + /** - * Test if the main entry point, function FindProxyForURL()/FindProxyForURLEx(), + * Test if the main entry point, function FindProxyForURL()/FindProxyForURLEx(), * is available. */ private PacJsEntryFunction testScriptEngine(ScriptEngine eng, boolean doDeepTest) throws PacParsingException { @@ -384,31 +391,18 @@ private PacJsEntryFunction testScriptEngine(ScriptEngine eng, boolean doDeepTest } private boolean isJsFunctionAvailable(ScriptEngine eng, String functionName, boolean doDeepTest) { - // We want to test if the function is there, but without actually - // invoking it. - Object obj = eng.get(functionName); - - if (!doDeepTest && obj != null) { - // Shallow test. We've established that there's - // "something" in the ENGINE_SCOPE with a name like - // functionName, and we *hope* it is a function, but we really don't - // know, therefore we call it a shallow test. - return true; + // We want to test if the function is there, but without actually + // invoking it. + try { + Object typeofCheck = eng.eval("(function(name) { return typeof this[name]; })"); + Object type = ((Invocable) eng).invokeMethod(typeofCheck, "call", null, functionName); + return "function".equals(type); + } catch (NoSuchMethodException | ScriptException ex) { + LOGGER.log(Level.WARNING, null, ex); + return false; } - - // For Nashorn post JDK8u40 we can do even deeper validation - // using the ScriptObjectMirror class. This will not work for Rhino. - if (doDeepTest && obj != null) { - if (obj instanceof ScriptObjectMirror) { - ScriptObjectMirror som = (ScriptObjectMirror) obj; - if (som.isFunction()) { - return true; - } - } - } - return false; } - + /** * Does the script source make reference to any of the date/time functions @@ -418,7 +412,7 @@ private boolean isJsFunctionAvailable(ScriptEngine eng, String functionName, boo * @return */ private static boolean usesTimeDateFunctions(String pacScriptSource) { - // Will be called only once so there's little to be gained by precompiling + // Will be called only once so there's little to be gained by precompiling // the regex statement. Pattern pattern = Pattern.compile(".*(timeRange\\s*\\(|dateRange\\s*\\(|weekdayRange\\s*\\().*", Pattern.DOTALL); @@ -448,31 +442,31 @@ private String getEngineInfo(ScriptEngine engine) { /** * Translates result from JavaScript into list of java proxy types. - * + * * The string returned from the JavaScript function (input to this - * method) can contain any number of the following building blocks, + * method) can contain any number of the following building blocks, * separated by a semicolon: - * + * * DIRECT * Connections should be made directly, without any proxies. - * + * * PROXY host:port * The specified proxy should be used. - * + * * SOCKS host:port * The specified SOCKS server should be used. - * - * + * + * * @param uri * @param proxiesString - * @return + * @return */ private List analyzeResult(URI uri, Object proxiesString) throws PacValidationException { if (proxiesString == null) { LOGGER.log(Level.FINE, "Null result for {0}", uri); return null; } - + StringTokenizer st = new StringTokenizer(proxiesString.toString(), ";"); //NOI18N List proxies = new LinkedList<>(); while (st.hasMoreTokens()) { @@ -485,8 +479,8 @@ private List analyzeResult(URI uri, Object proxiesString) throws PacValid private static Proxy getProxy(String proxySpec) throws PacValidationException { if (proxySpec.equals(PAC_DIRECT)) { return Proxy.NO_PROXY; - } - + } + String[] ele = proxySpec.split(" +"); // NOI18N if (ele.length != 2) { throw new PacValidationException("The value \"" + proxySpec + "\" has incorrect format"); @@ -506,7 +500,7 @@ private static Proxy getProxy(String proxySpec) throws PacValidationException { default: throw new PacValidationException("The value \"" + ele[0] + "\" is an unknown proxy type"); } - + String hostAndPortNo = ele[1]; int i = hostAndPortNo.lastIndexOf(":"); // NOI18N if (i <= 0 || i == (hostAndPortNo.length() - 1)) { @@ -522,11 +516,11 @@ private static Proxy getProxy(String proxySpec) throws PacValidationException { } catch (NumberFormatException ex) { throw new PacValidationException("The portno value \"" + portStr + "\" cannot be converted to an integer"); } - + return new Proxy(proxyType, new InetSocketAddress(host, portNo)); } - - + + private static class PacScriptEngine { private final ScriptEngine scriptEngine; private final PacJsEntryFunction jsMainFunction; @@ -549,10 +543,10 @@ public ScriptEngine getScriptEngine() { public Invocable getInvocable() { return invocable; } - + public Object findProxyForURL(String url, String host) throws ScriptException, NoSuchMethodException { return invocable.invokeFunction(jsMainFunction.getJsFunctionName(), url, host); } } - + } diff --git a/platform/core.network/src/org/netbeans/core/network/utils/IpAddressUtils.java b/platform/core.network/src/org/netbeans/core/network/utils/IpAddressUtils.java index 55b548da6e8a..7c745f5d8152 100644 --- a/platform/core.network/src/org/netbeans/core/network/utils/IpAddressUtils.java +++ b/platform/core.network/src/org/netbeans/core/network/utils/IpAddressUtils.java @@ -35,6 +35,7 @@ import java.util.regex.Pattern; import org.netbeans.api.annotations.common.NonNull; import org.openide.util.Exceptions; +import org.openide.util.Lookup; import org.openide.util.RequestProcessor; /** @@ -52,7 +53,18 @@ public class IpAddressUtils { private static final Pattern IPV4_PATTERN = Pattern.compile("^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}$"); private static final RequestProcessor RP = new RequestProcessor("DNSBackgroundResolvers", 10); - private IpAddressUtils() {} + IpAddressUtils() {} + + private static IpAddressUtils INSTANCE; + private static synchronized IpAddressUtils getDefault() { + if (INSTANCE == null) { + INSTANCE = Lookup.getDefault().lookup(IpAddressUtils.class); + if (INSTANCE == null) { + INSTANCE = new IpAddressUtils(); + } + } + return INSTANCE; + } /** * Filters the result of a method according to IP protocol preference. @@ -142,7 +154,7 @@ public enum IpTypePreference { * @throws UnknownHostException if no IP address for the host could be * found. */ - public static @NonNull InetAddress[] nameResolveArr(String host, int timeoutMs, IpTypePreference ipTypePref) + public static @NonNull InetAddress[] nameResolveArr(String host, int timeoutMs, IpTypePreference ipTypePref) throws InterruptedException, UnknownHostException, TimeoutException { if (looksLikeIpv6Literal(host) || looksLikeIpv4Literal(host)) { @@ -158,7 +170,7 @@ public enum IpTypePreference { return new InetAddress[]{addr}; } - Callable lookupTask = new DnsTimeoutTask(host); + Callable lookupTask = getDefault().createDnsTimeoutTask(host); Future future = RP.submit(lookupTask); try { InetAddress[] ipAddresses; @@ -191,7 +203,7 @@ public enum IpTypePreference { throw new TimeoutException("No answer from name service within " + timeoutMs + " milliseconds when resolving \"" + host+ "\""); } } - + /** * Performs a name service lookup with a timeout. Same as * {@link #nameResolveArr(java.lang.String, int, org.netbeans.network.IpAddressUtils.IpTypePreference) nameResolveArr()} @@ -212,7 +224,7 @@ public enum IpTypePreference { * @throws UnknownHostException if no IP address for the host could be * found. */ - public static @NonNull InetAddress nameResolve(String host, int timeoutMs, IpTypePreference ipTypePref) + public static @NonNull InetAddress nameResolve(String host, int timeoutMs, IpTypePreference ipTypePref) throws InterruptedException, UnknownHostException, TimeoutException { InetAddress[] ipAddresses = nameResolveArr(host, timeoutMs, ipTypePref); // We're guaranteed the array will have length > 0 and never null, @@ -245,7 +257,7 @@ public enum IpTypePreference { * @throws UnknownHostException if no IP address for the host could be * found. */ - public static @NonNull InetAddress nameResolve(String host, int timeoutMs) + public static @NonNull InetAddress nameResolve(String host, int timeoutMs) throws InterruptedException, UnknownHostException, TimeoutException { return nameResolve(host, timeoutMs, IpTypePreference.ANY_JDK_PREF); } @@ -444,7 +456,7 @@ private static void sortIpAddresses0(List addresses, boolean ip4Bef } - + private static class DnsTimeoutTask implements Callable { private final String host; @@ -521,6 +533,12 @@ private static boolean isAsciiDigit(char c) { return c >= 48 && c <= 57; } + // + // hook for tests + // + Callable createDnsTimeoutTask(String host) { + return new DnsTimeoutTask(host); + } } diff --git a/platform/core.network/test/unit/data/pacFiles2/pac-test-getclass.js b/platform/core.network/test/unit/data/pacFiles2/pac-test-getclass.js new file mode 100644 index 000000000000..79d77ebf9e9e --- /dev/null +++ b/platform/core.network/test/unit/data/pacFiles2/pac-test-getclass.js @@ -0,0 +1,33 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + + + +// +// A PAC script which tries to break out of the sandbox and attempts +// to do something really nasty. +// + +function FindProxyForURL(url, host) +{ + alert("pac-test-getclass.js"); + + var clazz = "".getClass(); + if (!clazz) { + return "DIRECT"; + } else { + return "PROXY " + clazz.toString().substring(6) + ":80"; + } +} \ No newline at end of file diff --git a/platform/core.network/test/unit/src/org/netbeans/core/network/proxy/ProxyAutoConfigDirectTest.java b/platform/core.network/test/unit/src/org/netbeans/core/network/proxy/ProxyAutoConfigDirectTest.java index a88a600d0c48..46ed0dcb2267 100644 --- a/platform/core.network/test/unit/src/org/netbeans/core/network/proxy/ProxyAutoConfigDirectTest.java +++ b/platform/core.network/test/unit/src/org/netbeans/core/network/proxy/ProxyAutoConfigDirectTest.java @@ -28,6 +28,9 @@ import org.netbeans.junit.NbTestCase; public class ProxyAutoConfigDirectTest extends NbTestCase { + static { + System.setProperty("netbeans.security.nocheck", "true"); + } public ProxyAutoConfigDirectTest(String name) { super(name); } diff --git a/platform/core.network/test/unit/src/org/netbeans/core/network/proxy/pac/PacEngineTest.java b/platform/core.network/test/unit/src/org/netbeans/core/network/proxy/pac/PacEngineTest.java index 7d109a7ff787..d61b120660b1 100644 --- a/platform/core.network/test/unit/src/org/netbeans/core/network/proxy/pac/PacEngineTest.java +++ b/platform/core.network/test/unit/src/org/netbeans/core/network/proxy/pac/PacEngineTest.java @@ -71,6 +71,7 @@ public void testEngine() throws PacParsingException, IOException, URISyntaxExcep testPacFile("pac-test2.js", factory, 3, true); testPacFile("pac-test3.js", factory, 1, false); testPacFileMalicious("pac-test-sandbox-breakout.js", factory); + testPacFileMalicious("pac-test-getclass.js", factory); testPacFile2("pac-test4.js", factory); } diff --git a/platform/core.network/test/unit/src/org/netbeans/core/network/proxy/pac/impl/NbPacScriptEvaluatorTest.java b/platform/core.network/test/unit/src/org/netbeans/core/network/proxy/pac/impl/NbPacScriptEvaluatorTest.java new file mode 100644 index 000000000000..8e9597eaa4ef --- /dev/null +++ b/platform/core.network/test/unit/src/org/netbeans/core/network/proxy/pac/impl/NbPacScriptEvaluatorTest.java @@ -0,0 +1,48 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.netbeans.core.network.proxy.pac.impl; + +import javax.script.ScriptEngine; +import org.junit.Assert; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import org.junit.Test; + +public class NbPacScriptEvaluatorTest { + + @Test + public void findsAnEngineByDefault() { + StringBuilder err = new StringBuilder(); + ScriptEngine eng = findDefaultEngineInTheSystem(err); + assertNotNull(err.toString(), eng); + } + + public static ScriptEngine findDefaultEngineInTheSystem(StringBuilder err) { + return NbPacScriptEvaluator.newAllowedPacEngine(null, err); + } + + @Test + public void reportsAnErrorForNonExistingEngine() { + StringBuilder err = new StringBuilder(); + ScriptEngine eng = NbPacScriptEvaluator.newAllowedPacEngine("NonExisting", err); + assertNull("No engine should be found: " + err.toString(), eng); + Assert.assertNotEquals("Some error was reported", 0, err.length()); + } + +} diff --git a/platform/core.network/test/unit/src/org/netbeans/core/network/proxy/pac/impl/PacHelperMethodsImplTest.java b/platform/core.network/test/unit/src/org/netbeans/core/network/proxy/pac/impl/PacHelperMethodsImplTest.java index 2a0548c19294..6337ce44baa7 100644 --- a/platform/core.network/test/unit/src/org/netbeans/core/network/proxy/pac/impl/PacHelperMethodsImplTest.java +++ b/platform/core.network/test/unit/src/org/netbeans/core/network/proxy/pac/impl/PacHelperMethodsImplTest.java @@ -33,6 +33,9 @@ import org.junit.Before; import org.junit.BeforeClass; import org.netbeans.core.network.utils.FakeDns; +import org.netbeans.core.network.utils.IpAddressUtils; +import org.netbeans.junit.MockServices; +import org.openide.util.Lookup; /** * @@ -63,7 +66,8 @@ public static void tearDownClass() { @Before public void setUp() throws UnknownHostException { - fakeDns = new FakeDns(); + MockServices.setServices(FakeDns.class); + fakeDns = Lookup.getDefault().lookup(FakeDns.class); fakeDns.install(true); ipv4Addr = InetAddress.getByName("172.217.17.36"); // just some random address ipv6Addr = InetAddress.getByName("2a00:1450:400e:804::2004"); // just some random address diff --git a/platform/core.network/test/unit/src/org/netbeans/core/network/utils/FakeDns.java b/platform/core.network/test/unit/src/org/netbeans/core/network/utils/FakeDns.java index 107c45d8a103..8521d47cfa08 100644 --- a/platform/core.network/test/unit/src/org/netbeans/core/network/utils/FakeDns.java +++ b/platform/core.network/test/unit/src/org/netbeans/core/network/utils/FakeDns.java @@ -22,8 +22,10 @@ import java.net.InetAddress; import java.net.UnknownHostException; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Map; +import java.util.concurrent.Callable; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicLong; import sun.net.spi.nameservice.NameService; @@ -41,13 +43,13 @@ * * @author lbruun */ -public class FakeDns { +public class FakeDns extends IpAddressUtils { private final Map forwardResolutions = new ConcurrentHashMap<>(); private final Map reverseResolutions = new ConcurrentHashMap<>(); private final List orgNameServices = new ArrayList<>(); - private volatile boolean installed = false; + private volatile List installed = null; private final AtomicLong delayAnsweringByMs = new AtomicLong(0); public FakeDns() { @@ -95,7 +97,7 @@ public void addReverseResolution(InetAddress ipAddress, String hostname) { * @param removeOthers if other name services should be removed */ public synchronized void install(boolean removeOthers) { - if (installed) { + if (installed != null) { return; } List nameServices = getKnownNameServices(); @@ -109,7 +111,9 @@ public synchronized void install(boolean removeOthers) { // Install ourselves in position 0, ahead of everyone else nameServices.add(0, new NameServiceInMemory()); - installed = true; + installed = nameServices; + } else { + installed = Collections.singletonList(new NameServiceInMemory()); } } @@ -119,7 +123,7 @@ public synchronized void install(boolean removeOthers) { * FakeDns. */ public synchronized void unInstall() { - if (!installed) { + if (installed == null) { return; } List nameServices = getKnownNameServices(); @@ -129,7 +133,7 @@ public synchronized void unInstall() { if (ns != null) { if (ns instanceof NameServiceInMemory) { nameServices.remove(0); - installed = false; + installed = null; } } @@ -172,6 +176,22 @@ private List getKnownNameServices() { return null; } + @Override + Callable createDnsTimeoutTask(String host) { + return () -> { + List namedServices = installed; + if (namedServices == null) { + return null; + } + for (NameService ns : namedServices) { + InetAddress[] result = ns.lookupAllHostAddr(host); + if (result != null) { + return result; + } + } + return null; + }; + } private class NameServiceInMemory implements NameService { @Override diff --git a/platform/core.network/test/unit/src/org/netbeans/core/network/utils/IpAddressUtilsTest.java b/platform/core.network/test/unit/src/org/netbeans/core/network/utils/IpAddressUtilsTest.java index 47b6f4f7ad22..15b9cb8a1e18 100644 --- a/platform/core.network/test/unit/src/org/netbeans/core/network/utils/IpAddressUtilsTest.java +++ b/platform/core.network/test/unit/src/org/netbeans/core/network/utils/IpAddressUtilsTest.java @@ -22,12 +22,13 @@ import org.junit.BeforeClass; import org.junit.Test; import static org.junit.Assert.*; +import org.netbeans.junit.MockServices; +import org.openide.util.Lookup; /** * */ public class IpAddressUtilsTest { - private FakeDns fakeDns; private InetAddress ipv4Addr; private InetAddress ipv6Addr; @@ -37,6 +38,7 @@ public IpAddressUtilsTest() { @BeforeClass public static void setUpClass() { + MockServices.setServices(FakeDns.class); } @AfterClass @@ -45,7 +47,7 @@ public static void tearDownClass() { @Before public void setUp() throws UnknownHostException { - fakeDns = new FakeDns(); + fakeDns = Lookup.getDefault().lookup(FakeDns.class); fakeDns.install(true); ipv4Addr = InetAddress.getByName("172.217.17.36"); // just some random address diff --git a/profiler/profiler.oql/src/org/netbeans/modules/profiler/oql/engine/api/impl/OQLEngineImpl.java b/profiler/profiler.oql/src/org/netbeans/modules/profiler/oql/engine/api/impl/OQLEngineImpl.java index 09525eaa5775..3d80a09ea9ce 100644 --- a/profiler/profiler.oql/src/org/netbeans/modules/profiler/oql/engine/api/impl/OQLEngineImpl.java +++ b/profiler/profiler.oql/src/org/netbeans/modules/profiler/oql/engine/api/impl/OQLEngineImpl.java @@ -380,7 +380,7 @@ public Object unwrapJavaObject(Object object, boolean tryAssociativeArray) { private void init(Snapshot snapshot) throws RuntimeException { this.snapshot = snapshot; try { - ScriptEngineManager manager = Scripting.createManager(); + ScriptEngineManager manager = Scripting.newBuilder().allowAllAccess(true).build(); engine = manager.getEngineByName("JavaScript"); // NOI18N InputStream strm = getInitStream(); CompiledScript cs = ((Compilable)engine).compile(new InputStreamReader(strm)); diff --git a/profiler/profiler.oql/test/unit/src/org/netbeans/modules/profiler/oql/engine/api/impl/OQLEngineTest.java b/profiler/profiler.oql/test/unit/src/org/netbeans/modules/profiler/oql/engine/api/impl/OQLEngineTest.java index 4d1f0be5de15..e7859d297e7c 100644 --- a/profiler/profiler.oql/test/unit/src/org/netbeans/modules/profiler/oql/engine/api/impl/OQLEngineTest.java +++ b/profiler/profiler.oql/test/unit/src/org/netbeans/modules/profiler/oql/engine/api/impl/OQLEngineTest.java @@ -48,15 +48,6 @@ public class OQLEngineTest { public OQLEngineTest() { } - @BeforeClass - public static void setUpClass() throws Exception { - System.setProperty("polyglot.js.nashorn-compat", "true"); - } - - @AfterClass - public static void tearDownClass() throws Exception { - } - @Before public void setUp() throws IOException, URISyntaxException { URL url = getClass().getResource("small_heap.bin"); diff --git a/webcommon/libs.graaljs/external/binaries-list b/webcommon/libs.graaljs/external/binaries-list index aa73ec2cc0a7..89049a519362 100644 --- a/webcommon/libs.graaljs/external/binaries-list +++ b/webcommon/libs.graaljs/external/binaries-list @@ -14,5 +14,6 @@ # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. -F1AAEE616CB62866C0C22CA26C8FDD93A7D3E0F8 org.graalvm.js:js:1.0.0-rc12 -FA1A582E348CEED1B0C5F3C0171E2156DAAB5486 org.graalvm.regex:regex:1.0.0-rc12 +7123118BFA4B0FF077D60985B784C148FAB724FE org.graalvm.js:js:19.0.0 +530ED62C07B9CD8C3E4BB0429B4243F6328E331F org.graalvm.regex:regex:19.0.0 +7A4D00D5EC5FEBD252A6182E8B6E87A0A9821F81 com.ibm.icu:icu4j:62.1 diff --git a/webcommon/libs.graaljs/external/icu4j-62.1-license.txt b/webcommon/libs.graaljs/external/icu4j-62.1-license.txt new file mode 100644 index 000000000000..29bfc929316d --- /dev/null +++ b/webcommon/libs.graaljs/external/icu4j-62.1-license.txt @@ -0,0 +1,39 @@ +Name: icu4j +Description: icu4j license +License: MIT-icu4j +Origin: https://github.com/oracle/graal +Version: 62.1 +Files: icu4j-62.1.jar + +ICU License - ICU 1.8.1 and later + +COPYRIGHT AND PERMISSION NOTICE + +Copyright (c) 1995-2010 International Business Machines Corporation and others + +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, and/or sell copies of the +Software, and to permit persons to whom the Software is furnished to do so, +provided that the above copyright notice(s) and this permission notice appear +in all copies of the Software and that both the above copyright notice(s) and +this permission notice appear in supporting documentation. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE +LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY +DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN +AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +Except as contained in this notice, the name of a copyright holder shall not +be used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization of the copyright holder. + +All trademarks and registered trademarks mentioned herein are the property of +their respective owners. diff --git a/webcommon/libs.graaljs/external/js-1.0.0-license.txt b/webcommon/libs.graaljs/external/js-19.0.0-license.txt similarity index 97% rename from webcommon/libs.graaljs/external/js-1.0.0-license.txt rename to webcommon/libs.graaljs/external/js-19.0.0-license.txt index 95314ef33571..454506dc43da 100644 --- a/webcommon/libs.graaljs/external/js-1.0.0-license.txt +++ b/webcommon/libs.graaljs/external/js-19.0.0-license.txt @@ -2,8 +2,8 @@ Name: Graal SDK and Truffle API Description: Graal SDK and Truffle API License: UPL Origin: https://github.com/oracle/graal -Version: 1.0 -Files: js-1.0.0-rc12.jar regex-1.0.0-rc12.jar +Version: 19.0.0 +Files: js-19.0.0.jar regex-19.0.0.jar Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. diff --git a/webcommon/libs.graaljs/nbproject/org-netbeans-libs-graaljs.sig b/webcommon/libs.graaljs/nbproject/org-netbeans-libs-graaljs.sig index 566a46df2f01..d6c9ad5bbd4a 100644 --- a/webcommon/libs.graaljs/nbproject/org-netbeans-libs-graaljs.sig +++ b/webcommon/libs.graaljs/nbproject/org-netbeans-libs-graaljs.sig @@ -1,5 +1,5 @@ #Signature file v4.1 -#Version 1.0.11 +#Version 1.1 CLSS public abstract com.oracle.js.parser.AbstractParser cons protected init(com.oracle.js.parser.Source,com.oracle.js.parser.ErrorManager,boolean,int) @@ -106,23 +106,11 @@ meth public static boolean isRepresentableAsInt(double) meth public static boolean isRepresentableAsLong(double) meth public static boolean isStrictlyRepresentableAsInt(double) meth public static boolean isStrictlyRepresentableAsLong(double) -meth public static boolean toBoolean(java.lang.Object) -meth public static double toNumber(java.lang.Object) -meth public static double toNumber(java.lang.String) -meth public static int digit(char,int) -meth public static int digit(char,int,boolean) -meth public static int toInt32(double) -meth public static int toInt32(java.lang.Object) -meth public static long toLong(double) -meth public static long toLong(java.lang.Object) -meth public static long toUint32(double) -meth public static long toUint32(java.lang.Object) supr java.lang.Object -hfds INT32_LIMIT,MAX_UINT CLSS public com.oracle.js.parser.Lexer -cons public init(com.oracle.js.parser.Source,com.oracle.js.parser.TokenStream,boolean,boolean,boolean) -cons public init(com.oracle.js.parser.Source,int,int,com.oracle.js.parser.TokenStream,boolean,boolean,boolean,boolean) +cons public init(com.oracle.js.parser.Source,com.oracle.js.parser.TokenStream,boolean,boolean,boolean,boolean,boolean) +cons public init(com.oracle.js.parser.Source,int,int,com.oracle.js.parser.TokenStream,boolean,boolean,boolean,boolean,boolean,boolean) innr protected abstract interface static LineInfoReceiver innr public abstract static LexerToken innr public static RegexToken @@ -133,7 +121,6 @@ meth protected boolean isEscapeCharacter(char) meth protected boolean isStringDelimiter(char) meth protected boolean isWhitespace(char) meth protected boolean scanLiteral(long,com.oracle.js.parser.TokenType,com.oracle.js.parser.Lexer$LineInfoReceiver) -meth protected boolean skipComments() meth protected final void scanTemplateSpan() meth protected static int convertDigit(char,int) meth protected void add(com.oracle.js.parser.TokenType,int) @@ -148,10 +135,11 @@ meth public java.lang.String stringIntern(java.lang.String) meth public java.lang.String valueOfRawString(long) meth public static boolean isJSEOL(char) meth public static boolean isJSWhitespace(char) +meth public static boolean isStringLineTerminator(char) meth public static java.lang.String unicodeEscape(char) meth public void lexify() supr com.oracle.js.parser.Scanner -hfds JAVASCRIPT_WHITESPACE_HIGH,JAVASCRIPT_WHITESPACE_HIGH_START,XML_LITERALS,es6,internedStrings,last,linePosition,nested,pauseOnFunctionBody,pauseOnNextLeftBrace,pauseOnRightBrace,pendingLine,scripting,shebang,source,stream +hfds JAVASCRIPT_WHITESPACE_HIGH,JAVASCRIPT_WHITESPACE_HIGH_START,MESSAGE_INVALID_HEX,XML_LITERALS,allowBigInt,es6,internedStrings,isModule,last,linePosition,nested,pauseOnFunctionBody,pauseOnNextLeftBrace,pauseOnRightBrace,pendingLine,scripting,shebang,source,stream hcls EditStringLexer,State CLSS public abstract static com.oracle.js.parser.Lexer$LexerToken @@ -194,7 +182,6 @@ cons public init(com.oracle.js.parser.ScriptEnvironment,com.oracle.js.parser.Sou fld protected final com.oracle.js.parser.Lexer$LineInfoReceiver lineInfoReceiver fld public final static boolean PROFILE_PARSING fld public final static boolean PROFILE_PARSING_PRINT -fld public static long totalParsingDuration meth public com.oracle.js.parser.ir.Expression parseExpression() meth public com.oracle.js.parser.ir.FunctionNode parse() meth public com.oracle.js.parser.ir.FunctionNode parse(java.lang.String,int,int,int) @@ -205,7 +192,7 @@ meth public java.lang.String toString() meth public void parseFormalParameterList() meth public void setReparsedFunction(com.oracle.js.parser.RecompilableScriptFunctionData) supr com.oracle.js.parser.AbstractParser -hfds ANONYMOUS_FUNCTION_NAME,ARGUMENTS_NAME,ARROW_FUNCTION_NAME,CATCH_PARAMETER_CONTEXT,CONSTRUCTOR_NAME,ERROR_BINDING_NAME,ES2019_OPTIONAL_CATCH_BINDING,ES6_ARROW_FUNCTION,ES6_CLASS,ES6_COMPUTED_PROPERTY_NAME,ES6_DEFAULT_PARAMETER,ES6_DESTRUCTURING,ES6_FOR_OF,ES6_GENERATOR_FUNCTION,ES6_NEW_TARGET,ES6_REST_PARAMETER,ES6_SPREAD_ARGUMENT,ES6_SPREAD_ARRAY,ES8_ASYNC_FUNCTION,ES8_FOR_AWAIT_OF,ES8_REST_SPREAD_PROPERTY,ES8_TRAILING_COMMA,EVAL_NAME,EXEC_NAME,FUNCTION_PARAMETER_CONTEXT,IMPORT_META_NAME,NEW_TARGET_NAME,PROGRAM_NAME,PROTOTYPE_NAME,PROTO_NAME,REPARSE_IS_METHOD,REPARSE_IS_PROPERTY_ACCESSOR,SWITCH_BINDING_NAME,defaultNames,env,functionDeclarations,isModule,lc,namespace,reparsedFunction,scripting,shebang +hfds ANONYMOUS_FUNCTION_NAME,ARGUMENTS_NAME,ARROW_FUNCTION_NAME,ASSIGNMENT_TARGET_CONTEXT,CATCH_PARAMETER_CONTEXT,CLASS_NAME_CONTEXT,CONSTRUCTOR_NAME,ERROR_BINDING_NAME,ES2019_OPTIONAL_CATCH_BINDING,ES6_ARROW_FUNCTION,ES6_CLASS,ES6_COMPUTED_PROPERTY_NAME,ES6_DEFAULT_PARAMETER,ES6_DESTRUCTURING,ES6_FOR_OF,ES6_GENERATOR_FUNCTION,ES6_NEW_TARGET,ES6_REST_PARAMETER,ES6_SPREAD_ARGUMENT,ES6_SPREAD_ARRAY,ES8_ASYNC_FUNCTION,ES8_FOR_AWAIT_OF,ES8_REST_SPREAD_PROPERTY,ES8_TRAILING_COMMA,EVAL_NAME,EXEC_NAME,FUNCTION_PARAMETER_CONTEXT,IMPORTED_BINDING_CONTEXT,IMPORT_META_NAME,MESSAGE_ESCAPED_KEYWORD,MESSAGE_EXPECTED_OPERAND,MESSAGE_EXPECTED_STMT,MESSAGE_INVALID_ARROW_PARAMETER,MESSAGE_INVALID_LVALUE,MESSAGE_INVALID_PROPERTY_INITIALIZER,MESSAGE_PROPERTY_REDEFINITON,NEW_TARGET_NAME,PROGRAM_NAME,PROTOTYPE_NAME,PROTO_NAME,REPARSE_IS_METHOD,REPARSE_IS_PROPERTY_ACCESSOR,SWITCH_BINDING_NAME,VARIABLE_NAME_CONTEXT,allowBigInt,defaultNames,env,functionDeclarations,isModule,lc,namespace,reparsedFunction,scripting,shebang hcls ClassElementKey,ForVariableDeclarationListResult,ParserState,PropertyFunction,VerifyDestructuringPatternNodeVisitor CLSS public final com.oracle.js.parser.ParserException @@ -254,11 +241,12 @@ innr public final static Builder meth public boolean isStrict() meth public static com.oracle.js.parser.ScriptEnvironment$Builder builder() supr java.lang.Object -hfds constAsVar,dumpOnError,earlyLvalueError,ecmaScriptVersion,emptyStatements,err,functionStatement,namespace,scripting,shebang,strict,syntaxExtensions +hfds allowBigInt,constAsVar,dumpOnError,earlyLvalueError,ecmaScriptVersion,emptyStatements,err,functionStatement,namespace,scripting,shebang,strict,syntaxExtensions CLSS public final static com.oracle.js.parser.ScriptEnvironment$Builder outer com.oracle.js.parser.ScriptEnvironment meth public com.oracle.js.parser.ScriptEnvironment build() +meth public com.oracle.js.parser.ScriptEnvironment$Builder allowBigInt(boolean) meth public com.oracle.js.parser.ScriptEnvironment$Builder constAsVar(boolean) meth public com.oracle.js.parser.ScriptEnvironment$Builder dumpOnError(java.io.PrintWriter) meth public com.oracle.js.parser.ScriptEnvironment$Builder earlyLvalueError(boolean) @@ -270,7 +258,7 @@ meth public com.oracle.js.parser.ScriptEnvironment$Builder shebang(boolean) meth public com.oracle.js.parser.ScriptEnvironment$Builder strict(boolean) meth public com.oracle.js.parser.ScriptEnvironment$Builder syntaxExtensions(boolean) supr java.lang.Object -hfds constAsVar,dumpOnError,earlyLvalueError,ecmaScriptVersion,emptyStatements,functionStatementBehavior,scripting,shebang,strict,syntaxExtensions +hfds allowBigInt,constAsVar,dumpOnError,earlyLvalueError,ecmaScriptVersion,emptyStatements,functionStatementBehavior,scripting,shebang,strict,syntaxExtensions CLSS public final static !enum com.oracle.js.parser.ScriptEnvironment$FunctionStatementBehavior outer com.oracle.js.parser.ScriptEnvironment @@ -509,7 +497,7 @@ meth public static com.oracle.js.parser.TokenType valueOf(java.lang.String) meth public static com.oracle.js.parser.TokenType[] values() meth public void setNext(com.oracle.js.parser.TokenType) supr java.lang.Enum -hfds isLeftAssociative,kind,name,next,precedence,values +hfds isLeftAssociative,kind,name,next,precedence,tokenValues CLSS public final com.oracle.js.parser.ir.AccessNode cons public init(long,int,com.oracle.js.parser.ir.Expression,java.lang.String) @@ -555,8 +543,8 @@ meth public com.oracle.js.parser.ir.BinaryNode setLHS(com.oracle.js.parser.ir.Ex meth public com.oracle.js.parser.ir.BinaryNode setRHS(com.oracle.js.parser.ir.Expression) meth public com.oracle.js.parser.ir.Expression getAssignmentDest() meth public com.oracle.js.parser.ir.Expression getAssignmentSource() -meth public com.oracle.js.parser.ir.Expression lhs() -meth public com.oracle.js.parser.ir.Expression rhs() +meth public com.oracle.js.parser.ir.Expression getLhs() +meth public com.oracle.js.parser.ir.Expression getRhs() meth public com.oracle.js.parser.ir.Node accept(com.oracle.js.parser.ir.visitor.NodeVisitor) meth public static boolean isLogical(com.oracle.js.parser.TokenType) meth public void toString(java.lang.StringBuilder,boolean) @@ -641,7 +629,6 @@ hfds block CLSS public final com.oracle.js.parser.ir.BreakNode cons public init(int,long,int,java.lang.String) meth public <%0 extends java.lang.Object> {%%0} accept(com.oracle.js.parser.ir.visitor.TranslatorNodeVisitor) -meth public com.oracle.js.parser.ir.BreakableNode getTarget(com.oracle.js.parser.ir.LexicalContext) meth public com.oracle.js.parser.ir.Node accept(com.oracle.js.parser.ir.visitor.NodeVisitor) supr com.oracle.js.parser.ir.JumpStatement @@ -652,9 +639,11 @@ meth public abstract boolean isBreakableWithoutLabel() CLSS public final com.oracle.js.parser.ir.CallNode cons public init(int,long,int,com.oracle.js.parser.ir.Expression,java.util.List,boolean) cons public init(int,long,int,int,com.oracle.js.parser.ir.Expression,java.util.List,boolean) +cons public init(int,long,int,int,com.oracle.js.parser.ir.Expression,java.util.List,boolean,boolean) intf com.oracle.js.parser.ir.LexicalContextNode meth public <%0 extends java.lang.Object> {%%0} accept(com.oracle.js.parser.ir.LexicalContext,com.oracle.js.parser.ir.visitor.TranslatorNodeVisitor) meth public boolean isEval() +meth public boolean isImport() meth public boolean isNew() meth public com.oracle.js.parser.ir.CallNode setArgs(java.util.List) meth public com.oracle.js.parser.ir.CallNode setFunction(com.oracle.js.parser.ir.Expression) @@ -664,9 +653,10 @@ meth public final <%0 extends java.lang.Object> {%%0} accept(com.oracle.js.parse meth public final com.oracle.js.parser.ir.Node accept(com.oracle.js.parser.ir.visitor.NodeVisitor) meth public int getLineNumber() meth public java.util.List getArgs() +meth public static com.oracle.js.parser.ir.Expression forImport(int,long,int,int,com.oracle.js.parser.ir.IdentNode,java.util.List) meth public void toString(java.lang.StringBuilder,boolean) supr com.oracle.js.parser.ir.Expression -hfds IS_EVAL,IS_NEW,args,flags,function,lineNumber +hfds IS_EVAL,IS_IMPORT,IS_NEW,args,flags,function,lineNumber CLSS public final com.oracle.js.parser.ir.CaseNode cons public init(long,int,com.oracle.js.parser.ir.Expression,java.util.List) @@ -716,7 +706,6 @@ hfds classElements,classHeritage,constructor,ident CLSS public com.oracle.js.parser.ir.ContinueNode cons public init(int,long,int,java.lang.String) meth public <%0 extends java.lang.Object> {%%0} accept(com.oracle.js.parser.ir.visitor.TranslatorNodeVisitor) -meth public com.oracle.js.parser.ir.BreakableNode getTarget(com.oracle.js.parser.ir.LexicalContext) meth public com.oracle.js.parser.ir.Node accept(com.oracle.js.parser.ir.visitor.NodeVisitor) supr com.oracle.js.parser.ir.JumpStatement @@ -1082,9 +1071,6 @@ supr com.oracle.js.parser.ir.Expression hfds expression CLSS public abstract com.oracle.js.parser.ir.JumpStatement -cons protected init(com.oracle.js.parser.ir.JumpStatement) -cons protected init(int,long,int,java.lang.String) -meth public abstract com.oracle.js.parser.ir.BreakableNode getTarget(com.oracle.js.parser.ir.LexicalContext) meth public boolean hasGoto() meth public java.lang.String getLabelName() meth public void toString(java.lang.StringBuilder,boolean) @@ -1113,21 +1099,13 @@ meth public <%0 extends com.oracle.js.parser.ir.LexicalContextNode> {%%0} push({ meth public boolean contains(com.oracle.js.parser.ir.LexicalContextNode) meth public boolean inUnprotectedSwitchContext() meth public boolean isEmpty() -meth public boolean isFunctionBody() meth public com.oracle.js.parser.ir.Block getCurrentBlock() meth public com.oracle.js.parser.ir.Block getParentBlock() -meth public com.oracle.js.parser.ir.BreakableNode getBreakable(java.lang.String) meth public com.oracle.js.parser.ir.FunctionNode getCurrentFunction() meth public com.oracle.js.parser.ir.FunctionNode getCurrentNonArrowFunction() -meth public com.oracle.js.parser.ir.FunctionNode getOutermostFunction() -meth public com.oracle.js.parser.ir.LabelNode findLabel(java.lang.String) -meth public com.oracle.js.parser.ir.LabelNode getCurrentBlockLabelNode() meth public com.oracle.js.parser.ir.LexicalContextNode replace(com.oracle.js.parser.ir.LexicalContextNode,com.oracle.js.parser.ir.LexicalContextNode) -meth public com.oracle.js.parser.ir.LoopNode getContinueTo(java.lang.String) -meth public com.oracle.js.parser.ir.LoopNode getCurrentLoop() meth public java.lang.String toString() meth public java.util.Iterator getBlocks() -meth public java.util.Iterator getBlocksInCurrentFunction() meth public java.util.Iterator getFunctions() meth public java.util.Iterator getAllNodes() supr java.lang.Object @@ -1148,21 +1126,13 @@ fld protected final {com.oracle.js.parser.ir.LiteralNode%0} value innr public final static ArrayLiteralNode innr public static PrimitiveLiteralNode meth public <%0 extends java.lang.Object> {%%0} accept(com.oracle.js.parser.ir.visitor.TranslatorNodeVisitor) -meth public boolean getBoolean() meth public boolean isArray() -meth public boolean isBoolean() -meth public boolean isNull() -meth public boolean isNumeric() meth public boolean isString() meth public com.oracle.js.parser.ir.Node accept(com.oracle.js.parser.ir.visitor.NodeVisitor) -meth public double getNumber() meth public final {com.oracle.js.parser.ir.LiteralNode%0} getValue() -meth public int getInt32() meth public java.lang.Object getObject() meth public java.lang.String getString() meth public java.util.List getElementExpressions() -meth public long getLong() -meth public long getUint32() meth public static com.oracle.js.parser.ir.LiteralNode newInstance(long,int,com.oracle.js.parser.Lexer$LexerToken) meth public static com.oracle.js.parser.ir.LiteralNode newInstance(long,int,com.oracle.js.parser.ir.Expression[]) meth public static com.oracle.js.parser.ir.LiteralNode newInstance(long,int,java.util.List) @@ -1171,7 +1141,7 @@ meth public static com.oracle.js.parser.ir.LiteralNode newIns meth public static com.oracle.js.parser.ir.LiteralNode newInstance(long,int,java.lang.Number) meth public static com.oracle.js.parser.ir.LiteralNode newInstance(long,int,java.lang.Number,java.util.function.Function) meth public static com.oracle.js.parser.ir.LiteralNode newInstance(long,int) -meth public static com.oracle.js.parser.ir.LiteralNode newInstance(long,int,java.lang.String) +meth public static com.oracle.js.parser.ir.LiteralNode newInstance(long,java.lang.String) meth public void toString(java.lang.StringBuilder,boolean) supr com.oracle.js.parser.ir.Expression hcls BooleanLiteralNode,LexerTokenLiteralNode,NullLiteralNode,NumberLiteralNode,StringLiteralNode @@ -1197,9 +1167,6 @@ hfds hasCoverInitializedName,hasSpread,hasTrailingComma CLSS public static com.oracle.js.parser.ir.LiteralNode$PrimitiveLiteralNode<%0 extends java.lang.Object> outer com.oracle.js.parser.ir.LiteralNode intf com.oracle.js.parser.ir.PropertyKey -meth public boolean isAlwaysFalse() -meth public boolean isAlwaysTrue() -meth public boolean isTrue() meth public java.lang.String getPropertyName() supr com.oracle.js.parser.ir.LiteralNode<{com.oracle.js.parser.ir.LiteralNode$PrimitiveLiteralNode%0}> diff --git a/webcommon/libs.graaljs/nbproject/project.properties b/webcommon/libs.graaljs/nbproject/project.properties index 47da34f36695..a4a1217737ed 100644 --- a/webcommon/libs.graaljs/nbproject/project.properties +++ b/webcommon/libs.graaljs/nbproject/project.properties @@ -19,5 +19,6 @@ javac.source=1.8 javac.compilerargs=-Xlint -Xlint:-serial is.autoload=true -release.external/js-1.0.0-rc12.jar=modules/ext/js-1.0.0-rc12.jar -release.external/regex-1.0.0-rc12.jar=modules/ext/regex-1.0.0-rc12.jar +release.external/js-19.0.0.jar=modules/ext/js-19.0.0.jar +release.external/regex-19.0.0.jar=modules/ext/regex-19.0.0.jar +release.external/icu4j-62.1.jar=modules/ext/icu4j-62.1.jar diff --git a/webcommon/libs.graaljs/nbproject/project.xml b/webcommon/libs.graaljs/nbproject/project.xml index 75d68b8c657c..ef02d2e23beb 100644 --- a/webcommon/libs.graaljs/nbproject/project.xml +++ b/webcommon/libs.graaljs/nbproject/project.xml @@ -65,12 +65,16 @@ com.oracle.js.parser.ir - ext/js-1.0.0-rc12.jar - external/js-1.0.0-rc12.jar + ext/js-19.0.0.jar + external/js-19.0.0.jar - ext/regex-1.0.0-rc12.jar - external/regex-1.0.0-rc12.jar + ext/regex-19.0.0.jar + external/regex-19.0.0.jar + + + ext/icu4j-62.1.jar + external/icu4j-62.1.jar diff --git a/webcommon/libs.truffleapi/external/binaries-list b/webcommon/libs.truffleapi/external/binaries-list index ebc6c033bab0..aedcb3857201 100644 --- a/webcommon/libs.truffleapi/external/binaries-list +++ b/webcommon/libs.truffleapi/external/binaries-list @@ -14,4 +14,4 @@ # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. -3B67206816378D4BABE37009C78A5BD429C560E1 org.graalvm.truffle:truffle-api:1.0.0-rc12 +44DC0250304EE3EF6B26B9D869E3D6B677D0A2A6 org.graalvm.truffle:truffle-api:19.0.0 diff --git a/webcommon/libs.truffleapi/external/truffle-api-1.0.0-license.txt b/webcommon/libs.truffleapi/external/truffle-api-19.0.0-license.txt similarity index 97% rename from webcommon/libs.truffleapi/external/truffle-api-1.0.0-license.txt rename to webcommon/libs.truffleapi/external/truffle-api-19.0.0-license.txt index fd08c8132e98..f57ccaa5dd22 100644 --- a/webcommon/libs.truffleapi/external/truffle-api-1.0.0-license.txt +++ b/webcommon/libs.truffleapi/external/truffle-api-19.0.0-license.txt @@ -2,8 +2,8 @@ Name: Graal SDK and Truffle API Description: Graal SDK and Truffle API License: UPL Origin: https://github.com/oracle/graal -Version: 1.0 -Files: truffle-api-1.0.0-rc12.jar +Version: 19.0.0 +Files: truffle-api-19.0.0.jar Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. diff --git a/webcommon/libs.truffleapi/nbproject/org-netbeans-libs-truffleapi.sig b/webcommon/libs.truffleapi/nbproject/org-netbeans-libs-truffleapi.sig index 5473765c724e..15ce3bdc12c3 100644 --- a/webcommon/libs.truffleapi/nbproject/org-netbeans-libs-truffleapi.sig +++ b/webcommon/libs.truffleapi/nbproject/org-netbeans-libs-truffleapi.sig @@ -1,5 +1,5 @@ #Signature file v4.1 -#Version 1.0.11 +#Version 1.1 CLSS public final com.oracle.truffle.api.ArrayUtils meth public !varargs static int indexOf(byte[],int,int,byte[]) @@ -12,6 +12,8 @@ meth public abstract boolean isValid() meth public abstract java.lang.String getName() meth public abstract void check() throws com.oracle.truffle.api.nodes.InvalidAssumptionException meth public abstract void invalidate() +meth public static boolean isValidAssumption(com.oracle.truffle.api.Assumption) +meth public static boolean isValidAssumption(com.oracle.truffle.api.Assumption[]) meth public void invalidate(java.lang.String) CLSS public abstract interface com.oracle.truffle.api.CallTarget @@ -25,8 +27,6 @@ meth public static void neverPartOfCompilation(java.lang.String) supr java.lang.Object CLSS public final com.oracle.truffle.api.CompilerDirectives -cons public init() - anno 0 java.lang.Deprecated() fld public final static double FASTPATH_PROBABILITY = 0.9999 fld public final static double LIKELY_PROBABILITY = 0.75 fld public final static double SLOWPATH_PROBABILITY = 1.0E-4 @@ -64,8 +64,6 @@ CLSS public abstract interface static !annotation com.oracle.truffle.api.Compile anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[METHOD, CONSTRUCTOR]) intf java.lang.annotation.Annotation meth public abstract !hasdefault boolean allowInlining() -meth public abstract !hasdefault boolean throwsControlFlowException() - anno 0 java.lang.Deprecated() meth public abstract !hasdefault boolean transferToInterpreterOnException() CLSS public abstract interface static !annotation com.oracle.truffle.api.CompilerDirectives$ValueType @@ -78,31 +76,11 @@ CLSS public abstract interface com.oracle.truffle.api.CompilerOptions meth public abstract boolean supportsOption(java.lang.String) meth public abstract void setOption(java.lang.String,java.lang.Object) -CLSS public com.oracle.truffle.api.ExactMath -cons public init() - anno 0 java.lang.Deprecated() -meth public static int addExact(int,int) - anno 0 java.lang.Deprecated() -meth public static int multiplyExact(int,int) - anno 0 java.lang.Deprecated() +CLSS public final com.oracle.truffle.api.ExactMath meth public static int multiplyHigh(int,int) meth public static int multiplyHighUnsigned(int,int) -meth public static int subtractExact(int,int) - anno 0 java.lang.Deprecated() -meth public static long addExact(long,long) - anno 0 java.lang.Deprecated() -meth public static long multiplyExact(long,long) - anno 0 java.lang.Deprecated() meth public static long multiplyHigh(long,long) meth public static long multiplyHighUnsigned(long,long) -meth public static long subtractExact(long,long) - anno 0 java.lang.Deprecated() -supr java.lang.Object - -CLSS public abstract com.oracle.truffle.api.ExecutionContext - anno 0 java.lang.Deprecated() -cons protected init() -meth public com.oracle.truffle.api.CompilerOptions getCompilerOptions() supr java.lang.Object CLSS public final com.oracle.truffle.api.InstrumentInfo @@ -113,10 +91,6 @@ meth public java.lang.String toString() supr java.lang.Object hfds id,name,version,vmObject -CLSS public abstract interface com.oracle.truffle.api.LoopCountReceiver - anno 0 java.lang.Deprecated() -meth public abstract void reportLoopCount(int) - CLSS public com.oracle.truffle.api.OptimizationFailedException cons public init(java.lang.Throwable,com.oracle.truffle.api.RootCallTarget) meth public com.oracle.truffle.api.RootCallTarget getCallTarget() @@ -130,6 +104,7 @@ innr public abstract interface static !annotation Group intf java.lang.annotation.Annotation meth public abstract !hasdefault boolean deprecated() meth public abstract !hasdefault java.lang.String name() +meth public abstract !hasdefault org.graalvm.options.OptionStability stability() meth public abstract java.lang.String help() meth public abstract org.graalvm.options.OptionCategory category() @@ -151,23 +126,24 @@ CLSS public final com.oracle.truffle.api.Scope innr public final Builder meth public com.oracle.truffle.api.nodes.Node getNode() meth public java.lang.Object getArguments() +meth public java.lang.Object getReceiver() meth public java.lang.Object getVariables() meth public java.lang.String getName() +meth public java.lang.String getReceiverName() meth public static com.oracle.truffle.api.Scope$Builder newBuilder(java.lang.String,java.lang.Object) supr java.lang.Object -hfds EMPTY,arguments,name,node,variables +hfds EMPTY,arguments,name,node,receiver,receiverName,variables CLSS public final com.oracle.truffle.api.Scope$Builder outer com.oracle.truffle.api.Scope meth public com.oracle.truffle.api.Scope build() meth public com.oracle.truffle.api.Scope$Builder arguments(java.lang.Object) meth public com.oracle.truffle.api.Scope$Builder node(com.oracle.truffle.api.nodes.Node) +meth public com.oracle.truffle.api.Scope$Builder receiver(java.lang.String,java.lang.Object) supr java.lang.Object -hfds arguments,name,node,variables +hfds arguments,name,node,receiver,receiverName,variables -CLSS public com.oracle.truffle.api.Truffle -cons public init() - anno 0 java.lang.Deprecated() +CLSS public final com.oracle.truffle.api.Truffle meth public static com.oracle.truffle.api.TruffleRuntime getRuntime() supr java.lang.Object hfds RUNTIME @@ -180,7 +156,7 @@ meth public java.lang.Object enter() meth public void close() meth public void leave(java.lang.Object) supr java.lang.Object -hfds EMPTY,assertStack,closeable,impl +hfds CONTEXT_ASSERT_STACK,EMPTY,closeable,impl CLSS public final com.oracle.truffle.api.TruffleContext$Builder outer com.oracle.truffle.api.TruffleContext @@ -196,18 +172,40 @@ meth public boolean isExit() meth public boolean isIncompleteSource() meth public boolean isInternalError() meth public boolean isSyntaxError() -meth public boolean isTimeout() - anno 0 java.lang.Deprecated() meth public com.oracle.truffle.api.source.SourceSection getSourceLocation() meth public int getExitStatus() meth public int getStackTraceElementLimit() meth public java.lang.Object getExceptionObject() CLSS public final com.oracle.truffle.api.TruffleFile +fld public final static com.oracle.truffle.api.TruffleFile$AttributeDescriptor IS_DIRECTORY +fld public final static com.oracle.truffle.api.TruffleFile$AttributeDescriptor IS_OTHER +fld public final static com.oracle.truffle.api.TruffleFile$AttributeDescriptor IS_REGULAR_FILE +fld public final static com.oracle.truffle.api.TruffleFile$AttributeDescriptor IS_SYMBOLIC_LINK +fld public final static com.oracle.truffle.api.TruffleFile$AttributeDescriptor UNIX_GID +fld public final static com.oracle.truffle.api.TruffleFile$AttributeDescriptor UNIX_MODE +fld public final static com.oracle.truffle.api.TruffleFile$AttributeDescriptor UNIX_NLINK +fld public final static com.oracle.truffle.api.TruffleFile$AttributeDescriptor UNIX_UID +fld public final static com.oracle.truffle.api.TruffleFile$AttributeDescriptor SIZE +fld public final static com.oracle.truffle.api.TruffleFile$AttributeDescriptor UNIX_DEV +fld public final static com.oracle.truffle.api.TruffleFile$AttributeDescriptor UNIX_INODE +fld public final static com.oracle.truffle.api.TruffleFile$AttributeDescriptor UNIX_RDEV +fld public final static com.oracle.truffle.api.TruffleFile$AttributeDescriptor CREATION_TIME +fld public final static com.oracle.truffle.api.TruffleFile$AttributeDescriptor LAST_ACCESS_TIME +fld public final static com.oracle.truffle.api.TruffleFile$AttributeDescriptor LAST_MODIFIED_TIME +fld public final static com.oracle.truffle.api.TruffleFile$AttributeDescriptor UNIX_CTIME +fld public final static com.oracle.truffle.api.TruffleFile$AttributeDescriptor UNIX_GROUP +fld public final static com.oracle.truffle.api.TruffleFile$AttributeDescriptor UNIX_OWNER +fld public final static com.oracle.truffle.api.TruffleFile$AttributeDescriptor> UNIX_PERMISSIONS +innr public abstract interface static FileTypeDetector +innr public final static AttributeDescriptor +innr public final static Attributes +meth public !varargs <%0 extends java.lang.Object> {%%0} getAttribute(com.oracle.truffle.api.TruffleFile$AttributeDescriptor<{%%0}>,java.nio.file.LinkOption[]) throws java.io.IOException meth public !varargs boolean exists(java.nio.file.LinkOption[]) meth public !varargs boolean isDirectory(java.nio.file.LinkOption[]) meth public !varargs boolean isRegularFile(java.nio.file.LinkOption[]) meth public !varargs com.oracle.truffle.api.TruffleFile getCanonicalFile(java.nio.file.LinkOption[]) throws java.io.IOException +meth public !varargs com.oracle.truffle.api.TruffleFile$Attributes getAttributes(java.util.Collection>,java.nio.file.LinkOption[]) throws java.io.IOException meth public !varargs java.io.BufferedWriter newBufferedWriter(java.nio.charset.Charset,java.nio.file.OpenOption[]) throws java.io.IOException meth public !varargs java.io.BufferedWriter newBufferedWriter(java.nio.file.OpenOption[]) throws java.io.IOException meth public !varargs java.io.InputStream newInputStream(java.nio.file.OpenOption[]) throws java.io.IOException @@ -251,6 +249,7 @@ meth public com.oracle.truffle.api.TruffleFile resolveSibling(java.lang.String) meth public int hashCode() meth public java.io.BufferedReader newBufferedReader() throws java.io.IOException meth public java.io.BufferedReader newBufferedReader(java.nio.charset.Charset) throws java.io.IOException +meth public java.lang.String getMimeType() throws java.io.IOException meth public java.lang.String getName() meth public java.lang.String getPath() meth public java.lang.String toString() @@ -261,14 +260,32 @@ meth public java.util.Collection list() thro meth public void createLink(com.oracle.truffle.api.TruffleFile) throws java.io.IOException meth public void delete() throws java.io.IOException supr java.lang.Object -hfds BUFFER_SIZE,MAX_BUFFER_SIZE,fileSystem,normalizedPath,path -hcls AllFiles,ByteChannelDecorator,TruffleFileDirectoryStream,Walker +hfds BUFFER_SIZE,MAX_BUFFER_SIZE,fileSystemContext,normalizedPath,path +hcls AllFiles,AttributeGroup,ByteChannelDecorator,FileSystemContext,TruffleFileDirectoryStream,Walker + +CLSS public final static com.oracle.truffle.api.TruffleFile$AttributeDescriptor<%0 extends java.lang.Object> + outer com.oracle.truffle.api.TruffleFile +meth public java.lang.String toString() +supr java.lang.Object +hfds clazz,group,name + +CLSS public final static com.oracle.truffle.api.TruffleFile$Attributes + outer com.oracle.truffle.api.TruffleFile +meth public <%0 extends java.lang.Object> {%%0} get(com.oracle.truffle.api.TruffleFile$AttributeDescriptor<{%%0}>) +supr java.lang.Object +hfds delegate,queriedAttributes + +CLSS public abstract interface static com.oracle.truffle.api.TruffleFile$FileTypeDetector + outer com.oracle.truffle.api.TruffleFile +meth public abstract java.lang.String findMimeType(com.oracle.truffle.api.TruffleFile) throws java.io.IOException +meth public abstract java.nio.charset.Charset findEncoding(com.oracle.truffle.api.TruffleFile) throws java.io.IOException CLSS public abstract com.oracle.truffle.api.TruffleLanguage<%0 extends java.lang.Object> cons protected init() innr public abstract interface static !annotation Registration +innr public abstract static ContextReference +innr public abstract static LanguageReference innr public final static !enum ContextPolicy -innr public final static ContextReference innr public final static Env innr public final static InlineParsingRequest innr public final static ParsingRequest @@ -304,7 +321,7 @@ meth protected void initializeMultipleContexts() meth protected void initializeThread({com.oracle.truffle.api.TruffleLanguage%0},java.lang.Thread) meth public final com.oracle.truffle.api.TruffleLanguage$ContextReference<{com.oracle.truffle.api.TruffleLanguage%0}> getContextReference() supr java.lang.Object -hfds API,languageInfo,reference +hfds API,languageInfo,reference,vmObject hcls AccessAPI,LanguageImpl CLSS public final static !enum com.oracle.truffle.api.TruffleLanguage$ContextPolicy @@ -316,11 +333,11 @@ meth public static com.oracle.truffle.api.TruffleLanguage$ContextPolicy valueOf( meth public static com.oracle.truffle.api.TruffleLanguage$ContextPolicy[] values() supr java.lang.Enum -CLSS public final static com.oracle.truffle.api.TruffleLanguage$ContextReference<%0 extends java.lang.Object> +CLSS public abstract static com.oracle.truffle.api.TruffleLanguage$ContextReference<%0 extends java.lang.Object> outer com.oracle.truffle.api.TruffleLanguage -meth public {com.oracle.truffle.api.TruffleLanguage$ContextReference%0} get() +cons protected init() +meth public abstract {com.oracle.truffle.api.TruffleLanguage$ContextReference%0} get() supr java.lang.Object -hfds languageShared CLSS public final static com.oracle.truffle.api.TruffleLanguage$Env outer com.oracle.truffle.api.TruffleLanguage @@ -336,6 +353,7 @@ meth public boolean isHostObject(java.lang.Object) meth public boolean isHostSymbol(java.lang.Object) meth public boolean isMimeTypeSupported(java.lang.String) meth public boolean isNativeAccessAllowed() +meth public boolean isPolyglotAccessAllowed() meth public boolean isPreInitialization() meth public com.oracle.truffle.api.TruffleContext getContext() meth public com.oracle.truffle.api.TruffleContext$Builder newContextBuilder() @@ -353,6 +371,7 @@ meth public java.lang.Object findMetaObject(java.lang.Object) meth public java.lang.Object getPolyglotBindings() meth public java.lang.Object importSymbol(java.lang.String) meth public java.lang.Object lookupHostSymbol(java.lang.String) +meth public java.lang.String getFileNameSeparator() meth public java.lang.String[] getApplicationArguments() meth public java.lang.Thread createThread(java.lang.Runnable) meth public java.lang.Thread createThread(java.lang.Runnable,com.oracle.truffle.api.TruffleContext) @@ -365,9 +384,10 @@ meth public java.util.Map getConfig() meth public org.graalvm.options.OptionValues getOptions() meth public void addToHostClassPath(com.oracle.truffle.api.TruffleFile) meth public void exportSymbol(java.lang.String,java.lang.Object) +meth public void registerService(java.lang.Object) meth public void setCurrentWorkingDirectory(com.oracle.truffle.api.TruffleFile) supr java.lang.Object -hfds UNSET_CONTEXT,applicationArguments,config,context,contextUnchangedAssumption,err,fileSystem,in,initialized,initializedUnchangedAssumption,options,out,services,spi,valid,vmObject +hfds UNSET_CONTEXT,applicationArguments,config,context,contextUnchangedAssumption,err,fileSystemContext,in,initialized,initializedUnchangedAssumption,languageServicesCollector,options,out,services,spi,valid,vmObject CLSS public final static com.oracle.truffle.api.TruffleLanguage$InlineParsingRequest outer com.oracle.truffle.api.TruffleLanguage @@ -377,16 +397,18 @@ meth public com.oracle.truffle.api.source.Source getSource() supr java.lang.Object hfds disposed,frame,node,source +CLSS public abstract static com.oracle.truffle.api.TruffleLanguage$LanguageReference<%0 extends com.oracle.truffle.api.TruffleLanguage> + outer com.oracle.truffle.api.TruffleLanguage +cons protected init() +meth public abstract {com.oracle.truffle.api.TruffleLanguage$LanguageReference%0} get() +supr java.lang.Object + CLSS public final static com.oracle.truffle.api.TruffleLanguage$ParsingRequest outer com.oracle.truffle.api.TruffleLanguage -meth public com.oracle.truffle.api.frame.MaterializedFrame getFrame() - anno 0 java.lang.Deprecated() -meth public com.oracle.truffle.api.nodes.Node getLocation() - anno 0 java.lang.Deprecated() meth public com.oracle.truffle.api.source.Source getSource() meth public java.util.List getArgumentNames() supr java.lang.Object -hfds argumentNames,disposed,frame,node,source +hfds argumentNames,disposed,source CLSS public abstract interface static !annotation com.oracle.truffle.api.TruffleLanguage$Registration outer com.oracle.truffle.api.TruffleLanguage @@ -396,6 +418,8 @@ intf java.lang.annotation.Annotation meth public abstract !hasdefault boolean interactive() meth public abstract !hasdefault boolean internal() meth public abstract !hasdefault com.oracle.truffle.api.TruffleLanguage$ContextPolicy contextPolicy() +meth public abstract !hasdefault java.lang.Class[] fileTypeDetectors() +meth public abstract !hasdefault java.lang.Class[] services() meth public abstract !hasdefault java.lang.String defaultMimeType() meth public abstract !hasdefault java.lang.String id() meth public abstract !hasdefault java.lang.String implementationName() @@ -447,7 +471,7 @@ meth public void severe(java.util.function.Supplier) meth public void warning(java.lang.String) meth public void warning(java.util.function.Supplier) supr java.lang.Object -hfds DEFAULT_VALUE,MAX_CLEANED_REFS,OFF_VALUE,ROOT_NAME,children,childrenLock,handlerProvider,levelNum,levelNumStable,levelObj,loggersRefQueue,name,parent +hfds DEFAULT_VALUE,MAX_CLEANED_REFS,OFF_VALUE,ROOT_NAME,children,childrenLock,handlerProvider,levelNum,levelNumStable,levelObj,loggerCache,loggersRefQueue,name,parent hcls AbstractLoggerRef,ChildLoggerRef,LoggerCache,PolyglotLogHandlerProvider CLSS public final com.oracle.truffle.api.TruffleOptions @@ -484,19 +508,28 @@ CLSS public abstract interface com.oracle.truffle.api.TruffleRuntimeAccess meth public abstract com.oracle.truffle.api.TruffleRuntime getRuntime() meth public int getPriority() +CLSS public final com.oracle.truffle.api.TruffleStackTrace +meth public java.lang.String toString() +meth public java.lang.Throwable fillInStackTrace() +meth public static com.oracle.truffle.api.TruffleStackTrace fillIn(java.lang.Throwable) +meth public static java.util.List getStackTrace(java.lang.Throwable) +meth public static java.util.List getStacktrace(java.lang.Throwable) + anno 0 java.lang.Deprecated() +supr java.lang.Exception +hfds EMPTY,frames,lazyFrames,materializedHostException +hcls LazyStackTrace,TracebackElement + CLSS public final com.oracle.truffle.api.TruffleStackTraceElement meth public com.oracle.truffle.api.RootCallTarget getTarget() meth public com.oracle.truffle.api.frame.Frame getFrame() meth public com.oracle.truffle.api.nodes.Node getLocation() meth public static java.util.List getStackTrace(java.lang.Throwable) + anno 0 java.lang.Deprecated() meth public static void fillIn(java.lang.Throwable) + anno 0 java.lang.Deprecated() supr java.lang.Object hfds frame,location,target -CLSS public abstract interface com.oracle.truffle.api.TypedObject - anno 0 java.lang.Deprecated() -meth public abstract java.lang.Object getTypeIdentifier() - CLSS public com.oracle.truffle.api.debug.Breakpoint innr public abstract interface static ResolveListener innr public final Builder @@ -524,7 +557,7 @@ meth public void setEnabled(boolean) meth public void setIgnoreCount(int) supr java.lang.Object hfds BUILDER_INSTANCE,breakpointBinding,condition,conditionExistsUnchanged,conditionUnchanged,debugger,disposed,enabled,exceptionFilter,global,hitCount,ignoreCount,locationKey,oneShot,resolveListener,resolved,roWrapper,sessions,sessionsUnchanged,sourceBinding,suspendAnchor -hcls AbstractBreakpointNode,BreakpointAfterNode,BreakpointAfterNodeException,BreakpointBeforeNode,BreakpointConditionFailure,BreakpointNodeFactory,ConditionalBreakNode,GlobalBreakpoint +hcls AbstractBreakpointNode,BreakpointAfterNode,BreakpointAfterNodeException,BreakpointBeforeNode,BreakpointConditionFailure,BreakpointNodeFactory,ConditionalBreakNode,GlobalBreakpoint,SessionList CLSS public final com.oracle.truffle.api.debug.Breakpoint$Builder outer com.oracle.truffle.api.debug.Breakpoint @@ -603,6 +636,7 @@ CLSS public final com.oracle.truffle.api.debug.DebugScope meth public boolean isFunctionScope() meth public com.oracle.truffle.api.debug.DebugScope getParent() meth public com.oracle.truffle.api.debug.DebugValue getDeclaredValue(java.lang.String) +meth public com.oracle.truffle.api.debug.DebugValue getReceiver() meth public com.oracle.truffle.api.source.SourceSection getSourceSection() meth public java.lang.Iterable getArguments() meth public java.lang.Iterable getDeclaredValues() @@ -611,19 +645,14 @@ supr java.lang.Object hfds event,frame,iterator,language,parent,root,scope,session,variables CLSS public final com.oracle.truffle.api.debug.DebugStackFrame -intf java.lang.Iterable meth public boolean equals(java.lang.Object) meth public boolean isInternal() meth public com.oracle.truffle.api.debug.DebugScope getScope() meth public com.oracle.truffle.api.debug.DebugValue eval(java.lang.String) -meth public com.oracle.truffle.api.debug.DebugValue getValue(java.lang.String) - anno 0 java.lang.Deprecated() meth public com.oracle.truffle.api.nodes.LanguageInfo getLanguage() meth public com.oracle.truffle.api.source.SourceSection getSourceSection() meth public int hashCode() meth public java.lang.String getName() -meth public java.util.Iterator iterator() - anno 0 java.lang.Deprecated() supr java.lang.Object hfds currentFrame,depth,event @@ -640,18 +669,21 @@ meth public abstract void threadDisposed(com.oracle.truffle.api.debug.DebugConte meth public abstract void threadInitialized(com.oracle.truffle.api.debug.DebugContext,java.lang.Thread) CLSS public abstract com.oracle.truffle.api.debug.DebugValue +meth public !varargs final com.oracle.truffle.api.debug.DebugValue execute(com.oracle.truffle.api.debug.DebugValue[]) meth public abstract <%0 extends java.lang.Object> {%%0} as(java.lang.Class<{%%0}>) meth public abstract boolean hasReadSideEffects() meth public abstract boolean hasWriteSideEffects() meth public abstract boolean isInternal() meth public abstract boolean isReadable() meth public abstract boolean isWritable() +meth public abstract java.lang.String asString() meth public abstract java.lang.String getName() meth public abstract void set(com.oracle.truffle.api.debug.DebugValue) meth public abstract void set(java.lang.Object) meth public com.oracle.truffle.api.debug.DebugScope getScope() meth public final boolean canExecute() meth public final boolean isArray() +meth public final boolean isNull() meth public final com.oracle.truffle.api.debug.DebugValue asInLanguage(com.oracle.truffle.api.nodes.LanguageInfo) meth public final com.oracle.truffle.api.debug.DebugValue getMetaObject() meth public final com.oracle.truffle.api.debug.DebugValue getProperty(java.lang.String) @@ -661,13 +693,14 @@ meth public final java.util.Collection meth public final java.util.List getArray() meth public java.lang.String toString() supr java.lang.Object -hfds preferredLanguage -hcls HeapValue,PropertyNamedValue,PropertyValue +hfds INTEROP,preferredLanguage +hcls AbstractDebugValue,ArrayElementValue,HeapValue,ObjectMemberValue,ObjectPropertyValue CLSS public final com.oracle.truffle.api.debug.Debugger meth public !varargs com.oracle.truffle.api.debug.DebuggerSession startSession(com.oracle.truffle.api.debug.SuspendedCallback,com.oracle.truffle.api.debug.SourceElement[]) meth public com.oracle.truffle.api.debug.Breakpoint install(com.oracle.truffle.api.debug.Breakpoint) meth public com.oracle.truffle.api.debug.DebuggerSession startSession(com.oracle.truffle.api.debug.SuspendedCallback) +meth public int getSessionCount() meth public java.util.List getBreakpoints() meth public static com.oracle.truffle.api.debug.Debugger find(com.oracle.truffle.api.TruffleLanguage$Env) meth public static com.oracle.truffle.api.debug.Debugger find(com.oracle.truffle.api.instrumentation.TruffleInstrument$Env) @@ -677,7 +710,7 @@ meth public void addBreakpointRemovedListener(java.util.function.Consumer) meth public void removeBreakpointRemovedListener(java.util.function.Consumer) supr java.lang.Object -hfds ACCESSOR,TRACE,alwaysHaltBreakpoint,breakpointAddedListeners,breakpointRemovedListeners,breakpoints,env,msgNodes,propSupport,sessions +hfds ACCESSOR,TRACE,alwaysHaltBreakpoint,breakpointAddedListeners,breakpointRemovedListeners,breakpoints,env,propSupport,sessions hcls AccessorDebug CLSS public final com.oracle.truffle.api.debug.DebuggerSession @@ -703,7 +736,7 @@ meth public void setSteppingFilter(com.oracle.truffle.api.debug.SuspensionFilter meth public void setThreadsListener(com.oracle.truffle.api.debug.DebugThreadsListener,boolean) meth public void suspendNextExecution() supr java.lang.Object -hfds ANCHOR_SET_AFTER,ANCHOR_SET_ALL,ANCHOR_SET_BEFORE,SESSIONS,allBindings,alwaysHaltBreakpointsActive,breakpoints,callback,closed,currentSuspendedEventMap,debugger,exceptionBreakpointsActive,executionLifecycle,hasExpressionElement,hasRootElement,ignoreLanguageContextInitialization,includeInternal,locationBreakpointsActive,sessionId,sourceElements,sourceFilter,sources,stepping,strategyMap,suspendAll,suspendNext,syntaxElementsBinding,threadSuspensions +hfds ANCHOR_SET_AFTER,ANCHOR_SET_ALL,ANCHOR_SET_BEFORE,SESSIONS,allBindings,alwaysHaltBreakpointsActive,breakpoints,callback,closed,currentSuspendedEventMap,debugger,exceptionBreakpointsActive,executionLifecycle,hasExpressionElement,hasRootElement,ignoreLanguageContextInitialization,includeInternal,locationBreakpointsActive,sessionId,sourceElements,sourceFilter,sources,stepping,strategyMap,suspendAll,suspendNext,suspensionFilterUnchanged,syntaxElementsBinding,threadSuspensions hcls RootSteppingDepthNode,StableBoolean,SteppingNode,ThreadSuspension CLSS public final com.oracle.truffle.api.debug.DebuggerTags @@ -795,10 +828,39 @@ hfds ignoreLanguageContextInitialization,includeInternal,sourcePredicate CLSS public abstract interface !annotation com.oracle.truffle.api.dsl.Cached anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=CLASS) anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[PARAMETER]) +innr public abstract interface static !annotation Exclusive +innr public abstract interface static !annotation Shared intf java.lang.annotation.Annotation +meth public abstract !hasdefault boolean allowUncached() meth public abstract !hasdefault int dimensions() +meth public abstract !hasdefault java.lang.String uncached() +meth public abstract !hasdefault java.lang.String value() +meth public abstract !hasdefault java.lang.String[] parameters() + +CLSS public abstract interface static !annotation com.oracle.truffle.api.dsl.Cached$Exclusive + outer com.oracle.truffle.api.dsl.Cached + anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=CLASS) + anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[PARAMETER, METHOD, TYPE]) +intf java.lang.annotation.Annotation + +CLSS public abstract interface static !annotation com.oracle.truffle.api.dsl.Cached$Shared + outer com.oracle.truffle.api.dsl.Cached + anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=CLASS) + anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[PARAMETER]) +intf java.lang.annotation.Annotation meth public abstract java.lang.String value() +CLSS public abstract interface !annotation com.oracle.truffle.api.dsl.CachedContext + anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=CLASS) + anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[PARAMETER]) +intf java.lang.annotation.Annotation +meth public abstract java.lang.Class value() + +CLSS public abstract interface !annotation com.oracle.truffle.api.dsl.CachedLanguage + anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=CLASS) + anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[PARAMETER]) +intf java.lang.annotation.Annotation + CLSS public abstract interface !annotation com.oracle.truffle.api.dsl.CreateCast anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=CLASS) anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[METHOD]) @@ -821,6 +883,9 @@ CLSS public abstract interface !annotation com.oracle.truffle.api.dsl.GenerateNo anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[TYPE]) intf java.lang.annotation.Annotation +CLSS public abstract interface !annotation com.oracle.truffle.api.dsl.GenerateUncached +intf java.lang.annotation.Annotation + CLSS public abstract interface !annotation com.oracle.truffle.api.dsl.GeneratedBy anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[TYPE]) @@ -1018,16 +1083,12 @@ CLSS public abstract interface com.oracle.truffle.api.frame.FrameInstance innr public final static !enum FrameAccess meth public abstract boolean isVirtualFrame() meth public abstract com.oracle.truffle.api.CallTarget getCallTarget() +meth public abstract com.oracle.truffle.api.frame.Frame getFrame(com.oracle.truffle.api.frame.FrameInstance$FrameAccess) meth public abstract com.oracle.truffle.api.nodes.Node getCallNode() -meth public com.oracle.truffle.api.frame.Frame getFrame(com.oracle.truffle.api.frame.FrameInstance$FrameAccess) -meth public com.oracle.truffle.api.frame.Frame getFrame(com.oracle.truffle.api.frame.FrameInstance$FrameAccess,boolean) - anno 0 java.lang.Deprecated() CLSS public final static !enum com.oracle.truffle.api.frame.FrameInstance$FrameAccess outer com.oracle.truffle.api.frame.FrameInstance fld public final static com.oracle.truffle.api.frame.FrameInstance$FrameAccess MATERIALIZE -fld public final static com.oracle.truffle.api.frame.FrameInstance$FrameAccess NONE - anno 0 java.lang.Deprecated() fld public final static com.oracle.truffle.api.frame.FrameInstance$FrameAccess READ_ONLY fld public final static com.oracle.truffle.api.frame.FrameInstance$FrameAccess READ_WRITE meth public static com.oracle.truffle.api.frame.FrameInstance$FrameAccess valueOf(java.lang.String) @@ -1132,8 +1193,6 @@ meth public abstract void onLanguageContextInitialized(com.oracle.truffle.api.Tr CLSS public com.oracle.truffle.api.instrumentation.EventBinding<%0 extends java.lang.Object> meth public boolean isDisposed() -meth public com.oracle.truffle.api.instrumentation.SourceSectionFilter getFilter() - anno 0 java.lang.Deprecated() meth public void dispose() meth public {com.oracle.truffle.api.instrumentation.EventBinding%0} getElement() supr java.lang.Object @@ -1141,8 +1200,6 @@ hfds disposed,element,instrumenter hcls Allocation,Source CLSS public final com.oracle.truffle.api.instrumentation.EventContext -meth public !varargs com.oracle.truffle.api.CallTarget parseInContext(com.oracle.truffle.api.source.Source,java.lang.String[]) throws java.io.IOException - anno 0 java.lang.Deprecated() meth public boolean hasTag(java.lang.Class) meth public boolean isLanguageContextInitialized() meth public com.oracle.truffle.api.instrumentation.ExecutionEventNode lookupExecutionEventNode(com.oracle.truffle.api.instrumentation.EventBinding) @@ -1259,11 +1316,7 @@ meth public abstract com.oracle.truffle.api.instrumentation.ExecutionEventNode l meth public abstract java.util.Set> queryTags(com.oracle.truffle.api.nodes.Node) meth public abstract void visitLoadedSourceSections(com.oracle.truffle.api.instrumentation.SourceSectionFilter,com.oracle.truffle.api.instrumentation.LoadSourceSectionListener) meth public final <%0 extends com.oracle.truffle.api.instrumentation.ExecutionEventListener> com.oracle.truffle.api.instrumentation.EventBinding<{%%0}> attachExecutionEventListener(com.oracle.truffle.api.instrumentation.SourceSectionFilter,{%%0}) -meth public final <%0 extends com.oracle.truffle.api.instrumentation.ExecutionEventListener> com.oracle.truffle.api.instrumentation.EventBinding<{%%0}> attachListener(com.oracle.truffle.api.instrumentation.SourceSectionFilter,{%%0}) - anno 0 java.lang.Deprecated() meth public final <%0 extends com.oracle.truffle.api.instrumentation.ExecutionEventNodeFactory> com.oracle.truffle.api.instrumentation.EventBinding<{%%0}> attachExecutionEventFactory(com.oracle.truffle.api.instrumentation.SourceSectionFilter,{%%0}) -meth public final <%0 extends com.oracle.truffle.api.instrumentation.ExecutionEventNodeFactory> com.oracle.truffle.api.instrumentation.EventBinding<{%%0}> attachFactory(com.oracle.truffle.api.instrumentation.SourceSectionFilter,{%%0}) - anno 0 java.lang.Deprecated() meth public final java.util.List querySourceSections(com.oracle.truffle.api.instrumentation.SourceSectionFilter) supr java.lang.Object @@ -1440,23 +1493,21 @@ meth public !varargs com.oracle.truffle.api.CallTarget parse(com.oracle.truffle. meth public <%0 extends java.lang.Object> {%%0} lookup(com.oracle.truffle.api.InstrumentInfo,java.lang.Class<{%%0}>) meth public <%0 extends java.lang.Object> {%%0} lookup(com.oracle.truffle.api.nodes.LanguageInfo,java.lang.Class<{%%0}>) meth public boolean isEngineRoot(com.oracle.truffle.api.nodes.RootNode) +meth public com.oracle.truffle.api.TruffleFile getTruffleFile(java.lang.String) +meth public com.oracle.truffle.api.TruffleFile getTruffleFile(java.net.URI) +meth public com.oracle.truffle.api.TruffleLogger getLogger(java.lang.Class) +meth public com.oracle.truffle.api.TruffleLogger getLogger(java.lang.String) meth public com.oracle.truffle.api.instrumentation.Instrumenter getInstrumenter() meth public com.oracle.truffle.api.nodes.ExecutableNode parseInline(com.oracle.truffle.api.source.Source,com.oracle.truffle.api.nodes.Node,com.oracle.truffle.api.frame.MaterializedFrame) meth public com.oracle.truffle.api.nodes.LanguageInfo findLanguage(java.lang.Object) meth public com.oracle.truffle.api.source.SourceSection findSourceLocation(com.oracle.truffle.api.nodes.LanguageInfo,java.lang.Object) -meth public com.oracle.truffle.api.source.SourceSection findSourceLocation(com.oracle.truffle.api.nodes.Node,java.lang.Object) - anno 0 java.lang.Deprecated() meth public java.io.InputStream in() meth public java.io.OutputStream err() meth public java.io.OutputStream out() meth public java.lang.Iterable findLocalScopes(com.oracle.truffle.api.nodes.Node,com.oracle.truffle.api.frame.Frame) meth public java.lang.Iterable findTopScopes(java.lang.String) meth public java.lang.Object findMetaObject(com.oracle.truffle.api.nodes.LanguageInfo,java.lang.Object) -meth public java.lang.Object findMetaObject(com.oracle.truffle.api.nodes.Node,java.lang.Object) - anno 0 java.lang.Deprecated() meth public java.lang.String toString(com.oracle.truffle.api.nodes.LanguageInfo,java.lang.Object) -meth public java.lang.String toString(com.oracle.truffle.api.nodes.Node,java.lang.Object) - anno 0 java.lang.Deprecated() meth public java.util.Map getExportedSymbols() meth public java.util.Map getInstruments() meth public java.util.Map getLanguages() @@ -1478,98 +1529,93 @@ meth public abstract !hasdefault java.lang.String id() meth public abstract !hasdefault java.lang.String name() meth public abstract !hasdefault java.lang.String version() -CLSS public abstract interface !annotation com.oracle.truffle.api.interop.AcceptMessage - anno 0 java.lang.Deprecated() - anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=SOURCE) - anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[TYPE]) -intf java.lang.annotation.Annotation -meth public abstract java.lang.Class> language() -meth public abstract java.lang.Class receiverType() -meth public abstract java.lang.String value() - CLSS public final com.oracle.truffle.api.interop.ArityException meth public int getActualArity() meth public int getExpectedArity() +meth public java.lang.String getMessage() +meth public static com.oracle.truffle.api.interop.ArityException create(int,int) meth public static java.lang.RuntimeException raise(int,int) + anno 0 java.lang.Deprecated() supr com.oracle.truffle.api.interop.InteropException hfds actualArity,expectedArity,serialVersionUID CLSS public abstract interface !annotation com.oracle.truffle.api.interop.CanResolve + anno 0 java.lang.Deprecated() anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=SOURCE) anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[TYPE]) intf java.lang.annotation.Annotation CLSS public final com.oracle.truffle.api.interop.ForeignAccess + anno 0 java.lang.Deprecated() innr public abstract interface static Factory -innr public abstract interface static Factory26 innr public abstract interface static StandardFactory -meth public !varargs static java.lang.Object execute(com.oracle.truffle.api.nodes.Node,com.oracle.truffle.api.frame.VirtualFrame,com.oracle.truffle.api.interop.TruffleObject,java.lang.Object[]) - anno 0 java.lang.Deprecated() meth public !varargs static java.lang.Object send(com.oracle.truffle.api.nodes.Node,com.oracle.truffle.api.interop.TruffleObject,java.lang.Object[]) throws com.oracle.truffle.api.interop.InteropException + anno 0 java.lang.Deprecated() meth public !varargs static java.lang.Object sendExecute(com.oracle.truffle.api.nodes.Node,com.oracle.truffle.api.interop.TruffleObject,java.lang.Object[]) throws com.oracle.truffle.api.interop.ArityException,com.oracle.truffle.api.interop.UnsupportedMessageException,com.oracle.truffle.api.interop.UnsupportedTypeException + anno 0 java.lang.Deprecated() meth public !varargs static java.lang.Object sendInvoke(com.oracle.truffle.api.nodes.Node,com.oracle.truffle.api.interop.TruffleObject,java.lang.String,java.lang.Object[]) throws com.oracle.truffle.api.interop.ArityException,com.oracle.truffle.api.interop.UnknownIdentifierException,com.oracle.truffle.api.interop.UnsupportedMessageException,com.oracle.truffle.api.interop.UnsupportedTypeException + anno 0 java.lang.Deprecated() meth public !varargs static java.lang.Object sendNew(com.oracle.truffle.api.nodes.Node,com.oracle.truffle.api.interop.TruffleObject,java.lang.Object[]) throws com.oracle.truffle.api.interop.ArityException,com.oracle.truffle.api.interop.UnsupportedMessageException,com.oracle.truffle.api.interop.UnsupportedTypeException + anno 0 java.lang.Deprecated() meth public java.lang.String toString() meth public static boolean sendHasKeys(com.oracle.truffle.api.nodes.Node,com.oracle.truffle.api.interop.TruffleObject) + anno 0 java.lang.Deprecated() meth public static boolean sendHasSize(com.oracle.truffle.api.nodes.Node,com.oracle.truffle.api.interop.TruffleObject) + anno 0 java.lang.Deprecated() meth public static boolean sendIsBoxed(com.oracle.truffle.api.nodes.Node,com.oracle.truffle.api.interop.TruffleObject) + anno 0 java.lang.Deprecated() meth public static boolean sendIsExecutable(com.oracle.truffle.api.nodes.Node,com.oracle.truffle.api.interop.TruffleObject) + anno 0 java.lang.Deprecated() meth public static boolean sendIsInstantiable(com.oracle.truffle.api.nodes.Node,com.oracle.truffle.api.interop.TruffleObject) + anno 0 java.lang.Deprecated() meth public static boolean sendIsNull(com.oracle.truffle.api.nodes.Node,com.oracle.truffle.api.interop.TruffleObject) + anno 0 java.lang.Deprecated() meth public static boolean sendIsPointer(com.oracle.truffle.api.nodes.Node,com.oracle.truffle.api.interop.TruffleObject) + anno 0 java.lang.Deprecated() meth public static boolean sendRemove(com.oracle.truffle.api.nodes.Node,com.oracle.truffle.api.interop.TruffleObject,java.lang.Object) throws com.oracle.truffle.api.interop.UnknownIdentifierException,com.oracle.truffle.api.interop.UnsupportedMessageException + anno 0 java.lang.Deprecated() meth public static com.oracle.truffle.api.interop.ForeignAccess create(com.oracle.truffle.api.interop.ForeignAccess$Factory) -meth public static com.oracle.truffle.api.interop.ForeignAccess create(com.oracle.truffle.api.interop.ForeignAccess$Factory26,com.oracle.truffle.api.nodes.RootNode) anno 0 java.lang.Deprecated() meth public static com.oracle.truffle.api.interop.ForeignAccess create(com.oracle.truffle.api.interop.ForeignAccess$StandardFactory,com.oracle.truffle.api.nodes.RootNode) anno 0 java.lang.Deprecated() -meth public static com.oracle.truffle.api.interop.ForeignAccess create(java.lang.Class,com.oracle.truffle.api.interop.ForeignAccess$Factory26) - anno 0 java.lang.Deprecated() meth public static com.oracle.truffle.api.interop.ForeignAccess create(java.lang.Class,com.oracle.truffle.api.interop.ForeignAccess$StandardFactory) + anno 0 java.lang.Deprecated() meth public static com.oracle.truffle.api.interop.ForeignAccess createAccess(com.oracle.truffle.api.interop.ForeignAccess$StandardFactory,java.util.function.Supplier) meth public static com.oracle.truffle.api.interop.TruffleObject getReceiver(com.oracle.truffle.api.frame.Frame) + anno 0 java.lang.Deprecated() meth public static com.oracle.truffle.api.interop.TruffleObject sendKeys(com.oracle.truffle.api.nodes.Node,com.oracle.truffle.api.interop.TruffleObject) throws com.oracle.truffle.api.interop.UnsupportedMessageException + anno 0 java.lang.Deprecated() meth public static com.oracle.truffle.api.interop.TruffleObject sendKeys(com.oracle.truffle.api.nodes.Node,com.oracle.truffle.api.interop.TruffleObject,boolean) throws com.oracle.truffle.api.interop.UnsupportedMessageException + anno 0 java.lang.Deprecated() meth public static int sendKeyInfo(com.oracle.truffle.api.nodes.Node,com.oracle.truffle.api.interop.TruffleObject,java.lang.Object) + anno 0 java.lang.Deprecated() meth public static java.lang.Object sendGetSize(com.oracle.truffle.api.nodes.Node,com.oracle.truffle.api.interop.TruffleObject) throws com.oracle.truffle.api.interop.UnsupportedMessageException + anno 0 java.lang.Deprecated() meth public static java.lang.Object sendRead(com.oracle.truffle.api.nodes.Node,com.oracle.truffle.api.interop.TruffleObject,java.lang.Object) throws com.oracle.truffle.api.interop.UnknownIdentifierException,com.oracle.truffle.api.interop.UnsupportedMessageException + anno 0 java.lang.Deprecated() meth public static java.lang.Object sendToNative(com.oracle.truffle.api.nodes.Node,com.oracle.truffle.api.interop.TruffleObject) throws com.oracle.truffle.api.interop.UnsupportedMessageException + anno 0 java.lang.Deprecated() meth public static java.lang.Object sendUnbox(com.oracle.truffle.api.nodes.Node,com.oracle.truffle.api.interop.TruffleObject) throws com.oracle.truffle.api.interop.UnsupportedMessageException + anno 0 java.lang.Deprecated() meth public static java.lang.Object sendWrite(com.oracle.truffle.api.nodes.Node,com.oracle.truffle.api.interop.TruffleObject,java.lang.Object,java.lang.Object) throws com.oracle.truffle.api.interop.UnknownIdentifierException,com.oracle.truffle.api.interop.UnsupportedMessageException,com.oracle.truffle.api.interop.UnsupportedTypeException + anno 0 java.lang.Deprecated() meth public static java.util.List getArguments(com.oracle.truffle.api.frame.Frame) + anno 0 java.lang.Deprecated() meth public static long sendAsPointer(com.oracle.truffle.api.nodes.Node,com.oracle.truffle.api.interop.TruffleObject) throws com.oracle.truffle.api.interop.UnsupportedMessageException + anno 0 java.lang.Deprecated() supr java.lang.Object -hfds ACCESSOR,factory,initThread,languageCheckSupplier -hcls DelegatingFactory,DelegatingFactory26,RootNodeSupplier +hfds ACCESSOR,LEGACY_TO_LIBRARY_BRIDGE,factory,initThread,languageCheckSupplier +hcls DelegatingFactory,RootNodeSupplier CLSS public abstract interface static com.oracle.truffle.api.interop.ForeignAccess$Factory outer com.oracle.truffle.api.interop.ForeignAccess + anno 0 java.lang.Deprecated() meth public abstract boolean canHandle(com.oracle.truffle.api.interop.TruffleObject) meth public abstract com.oracle.truffle.api.CallTarget accessMessage(com.oracle.truffle.api.interop.Message) -CLSS public abstract interface static com.oracle.truffle.api.interop.ForeignAccess$Factory26 - outer com.oracle.truffle.api.interop.ForeignAccess - anno 0 java.lang.Deprecated() -meth public abstract com.oracle.truffle.api.CallTarget accessExecute(int) -meth public abstract com.oracle.truffle.api.CallTarget accessGetSize() -meth public abstract com.oracle.truffle.api.CallTarget accessHasSize() -meth public abstract com.oracle.truffle.api.CallTarget accessInvoke(int) -meth public abstract com.oracle.truffle.api.CallTarget accessIsBoxed() -meth public abstract com.oracle.truffle.api.CallTarget accessIsExecutable() -meth public abstract com.oracle.truffle.api.CallTarget accessIsNull() -meth public abstract com.oracle.truffle.api.CallTarget accessKeyInfo() -meth public abstract com.oracle.truffle.api.CallTarget accessKeys() -meth public abstract com.oracle.truffle.api.CallTarget accessMessage(com.oracle.truffle.api.interop.Message) -meth public abstract com.oracle.truffle.api.CallTarget accessNew(int) -meth public abstract com.oracle.truffle.api.CallTarget accessRead() -meth public abstract com.oracle.truffle.api.CallTarget accessUnbox() -meth public abstract com.oracle.truffle.api.CallTarget accessWrite() -meth public com.oracle.truffle.api.CallTarget accessAsPointer() -meth public com.oracle.truffle.api.CallTarget accessIsPointer() -meth public com.oracle.truffle.api.CallTarget accessToNative() - CLSS public abstract interface static com.oracle.truffle.api.interop.ForeignAccess$StandardFactory outer com.oracle.truffle.api.interop.ForeignAccess + anno 0 java.lang.Deprecated() meth public com.oracle.truffle.api.CallTarget accessAsPointer() meth public com.oracle.truffle.api.CallTarget accessExecute(int) meth public com.oracle.truffle.api.CallTarget accessGetSize() @@ -1593,71 +1639,166 @@ meth public com.oracle.truffle.api.CallTarget accessWrite() CLSS public abstract com.oracle.truffle.api.interop.InteropException meth public final java.lang.RuntimeException raise() + anno 0 java.lang.Deprecated() supr java.lang.Exception hfds serialVersionUID +CLSS public abstract com.oracle.truffle.api.interop.InteropLibrary +cons protected init() +meth protected final boolean assertAdopted() +meth public !varargs java.lang.Object execute(java.lang.Object,java.lang.Object[]) throws com.oracle.truffle.api.interop.ArityException,com.oracle.truffle.api.interop.UnsupportedMessageException,com.oracle.truffle.api.interop.UnsupportedTypeException +meth public !varargs java.lang.Object instantiate(java.lang.Object,java.lang.Object[]) throws com.oracle.truffle.api.interop.ArityException,com.oracle.truffle.api.interop.UnsupportedMessageException,com.oracle.truffle.api.interop.UnsupportedTypeException +meth public !varargs java.lang.Object invokeMember(java.lang.Object,java.lang.String,java.lang.Object[]) throws com.oracle.truffle.api.interop.ArityException,com.oracle.truffle.api.interop.UnknownIdentifierException,com.oracle.truffle.api.interop.UnsupportedMessageException,com.oracle.truffle.api.interop.UnsupportedTypeException +meth public boolean asBoolean(java.lang.Object) throws com.oracle.truffle.api.interop.UnsupportedMessageException +meth public boolean fitsInByte(java.lang.Object) +meth public boolean fitsInDouble(java.lang.Object) +meth public boolean fitsInFloat(java.lang.Object) +meth public boolean fitsInInt(java.lang.Object) +meth public boolean fitsInLong(java.lang.Object) +meth public boolean fitsInShort(java.lang.Object) +meth public boolean hasArrayElements(java.lang.Object) +meth public boolean hasMemberReadSideEffects(java.lang.Object,java.lang.String) +meth public boolean hasMemberWriteSideEffects(java.lang.Object,java.lang.String) +meth public boolean hasMembers(java.lang.Object) +meth public boolean isArrayElementInsertable(java.lang.Object,long) +meth public boolean isArrayElementModifiable(java.lang.Object,long) +meth public boolean isArrayElementReadable(java.lang.Object,long) +meth public boolean isArrayElementRemovable(java.lang.Object,long) +meth public boolean isBoolean(java.lang.Object) +meth public boolean isExecutable(java.lang.Object) +meth public boolean isInstantiable(java.lang.Object) +meth public boolean isMemberInsertable(java.lang.Object,java.lang.String) +meth public boolean isMemberInternal(java.lang.Object,java.lang.String) +meth public boolean isMemberInvocable(java.lang.Object,java.lang.String) +meth public boolean isMemberModifiable(java.lang.Object,java.lang.String) +meth public boolean isMemberReadable(java.lang.Object,java.lang.String) +meth public boolean isMemberRemovable(java.lang.Object,java.lang.String) +meth public boolean isNull(java.lang.Object) +meth public boolean isNumber(java.lang.Object) +meth public boolean isPointer(java.lang.Object) +meth public boolean isString(java.lang.Object) +meth public byte asByte(java.lang.Object) throws com.oracle.truffle.api.interop.UnsupportedMessageException +meth public double asDouble(java.lang.Object) throws com.oracle.truffle.api.interop.UnsupportedMessageException +meth public final boolean isArrayElementExisting(java.lang.Object,long) +meth public final boolean isArrayElementWritable(java.lang.Object,long) +meth public final boolean isMemberExisting(java.lang.Object,java.lang.String) +meth public final boolean isMemberWritable(java.lang.Object,java.lang.String) +meth public final java.lang.Object getMembers(java.lang.Object) throws com.oracle.truffle.api.interop.UnsupportedMessageException +meth public float asFloat(java.lang.Object) throws com.oracle.truffle.api.interop.UnsupportedMessageException +meth public int asInt(java.lang.Object) throws com.oracle.truffle.api.interop.UnsupportedMessageException +meth public java.lang.Object getMembers(java.lang.Object,boolean) throws com.oracle.truffle.api.interop.UnsupportedMessageException +meth public java.lang.Object readArrayElement(java.lang.Object,long) throws com.oracle.truffle.api.interop.InvalidArrayIndexException,com.oracle.truffle.api.interop.UnsupportedMessageException +meth public java.lang.Object readMember(java.lang.Object,java.lang.String) throws com.oracle.truffle.api.interop.UnknownIdentifierException,com.oracle.truffle.api.interop.UnsupportedMessageException +meth public java.lang.String asString(java.lang.Object) throws com.oracle.truffle.api.interop.UnsupportedMessageException +meth public long asLong(java.lang.Object) throws com.oracle.truffle.api.interop.UnsupportedMessageException +meth public long asPointer(java.lang.Object) throws com.oracle.truffle.api.interop.UnsupportedMessageException +meth public long getArraySize(java.lang.Object) throws com.oracle.truffle.api.interop.UnsupportedMessageException +meth public short asShort(java.lang.Object) throws com.oracle.truffle.api.interop.UnsupportedMessageException +meth public static com.oracle.truffle.api.library.LibraryFactory getFactory() +meth public void removeArrayElement(java.lang.Object,long) throws com.oracle.truffle.api.interop.InvalidArrayIndexException,com.oracle.truffle.api.interop.UnsupportedMessageException +meth public void removeMember(java.lang.Object,java.lang.String) throws com.oracle.truffle.api.interop.UnknownIdentifierException,com.oracle.truffle.api.interop.UnsupportedMessageException +meth public void toNative(java.lang.Object) +meth public void writeArrayElement(java.lang.Object,long,java.lang.Object) throws com.oracle.truffle.api.interop.InvalidArrayIndexException,com.oracle.truffle.api.interop.UnsupportedMessageException,com.oracle.truffle.api.interop.UnsupportedTypeException +meth public void writeMember(java.lang.Object,java.lang.String,java.lang.Object) throws com.oracle.truffle.api.interop.UnknownIdentifierException,com.oracle.truffle.api.interop.UnsupportedMessageException,com.oracle.truffle.api.interop.UnsupportedTypeException +supr com.oracle.truffle.api.library.Library +hfds FACTORY +hcls Asserts + +CLSS public final com.oracle.truffle.api.interop.InvalidArrayIndexException +meth public java.lang.String getMessage() +meth public long getInvalidIndex() +meth public static com.oracle.truffle.api.interop.InvalidArrayIndexException create(long) +supr com.oracle.truffle.api.interop.InteropException +hfds invalidIndex,serialVersionUID + CLSS public final com.oracle.truffle.api.interop.KeyInfo + anno 0 java.lang.Deprecated() fld public final static int INSERTABLE = 64 + anno 0 java.lang.Deprecated() fld public final static int INTERNAL = 16 + anno 0 java.lang.Deprecated() fld public final static int INVOCABLE = 8 + anno 0 java.lang.Deprecated() fld public final static int MODIFIABLE = 4 + anno 0 java.lang.Deprecated() fld public final static int NONE = 0 + anno 0 java.lang.Deprecated() fld public final static int READABLE = 2 + anno 0 java.lang.Deprecated() fld public final static int READ_SIDE_EFFECTS = 128 + anno 0 java.lang.Deprecated() fld public final static int REMOVABLE = 32 + anno 0 java.lang.Deprecated() fld public final static int WRITE_SIDE_EFFECTS = 256 -innr public final Builder + anno 0 java.lang.Deprecated() meth public static boolean hasReadSideEffects(int) + anno 0 java.lang.Deprecated() meth public static boolean hasWriteSideEffects(int) + anno 0 java.lang.Deprecated() meth public static boolean isExisting(int) + anno 0 java.lang.Deprecated() meth public static boolean isInsertable(int) + anno 0 java.lang.Deprecated() meth public static boolean isInternal(int) + anno 0 java.lang.Deprecated() meth public static boolean isInvocable(int) + anno 0 java.lang.Deprecated() meth public static boolean isModifiable(int) + anno 0 java.lang.Deprecated() meth public static boolean isReadable(int) + anno 0 java.lang.Deprecated() meth public static boolean isRemovable(int) + anno 0 java.lang.Deprecated() meth public static boolean isWritable(int) -meth public static com.oracle.truffle.api.interop.KeyInfo$Builder newBuilder() anno 0 java.lang.Deprecated() supr java.lang.Object hfds EXISTING,WRITABLE -CLSS public final com.oracle.truffle.api.interop.KeyInfo$Builder - outer com.oracle.truffle.api.interop.KeyInfo - anno 0 java.lang.Deprecated() -meth public com.oracle.truffle.api.interop.KeyInfo$Builder setInternal(boolean) -meth public com.oracle.truffle.api.interop.KeyInfo$Builder setInvocable(boolean) -meth public com.oracle.truffle.api.interop.KeyInfo$Builder setReadable(boolean) -meth public com.oracle.truffle.api.interop.KeyInfo$Builder setRemovable(boolean) -meth public com.oracle.truffle.api.interop.KeyInfo$Builder setWritable(boolean) -meth public int build() -supr java.lang.Object -hfds infoBits - CLSS public abstract com.oracle.truffle.api.interop.Message + anno 0 java.lang.Deprecated() cons protected init() fld public final static com.oracle.truffle.api.interop.Message AS_POINTER + anno 0 java.lang.Deprecated() fld public final static com.oracle.truffle.api.interop.Message EXECUTE + anno 0 java.lang.Deprecated() fld public final static com.oracle.truffle.api.interop.Message GET_SIZE + anno 0 java.lang.Deprecated() fld public final static com.oracle.truffle.api.interop.Message HAS_KEYS + anno 0 java.lang.Deprecated() fld public final static com.oracle.truffle.api.interop.Message HAS_SIZE + anno 0 java.lang.Deprecated() fld public final static com.oracle.truffle.api.interop.Message INVOKE + anno 0 java.lang.Deprecated() fld public final static com.oracle.truffle.api.interop.Message IS_BOXED + anno 0 java.lang.Deprecated() fld public final static com.oracle.truffle.api.interop.Message IS_EXECUTABLE + anno 0 java.lang.Deprecated() fld public final static com.oracle.truffle.api.interop.Message IS_INSTANTIABLE + anno 0 java.lang.Deprecated() fld public final static com.oracle.truffle.api.interop.Message IS_NULL + anno 0 java.lang.Deprecated() fld public final static com.oracle.truffle.api.interop.Message IS_POINTER + anno 0 java.lang.Deprecated() fld public final static com.oracle.truffle.api.interop.Message KEYS + anno 0 java.lang.Deprecated() fld public final static com.oracle.truffle.api.interop.Message KEY_INFO + anno 0 java.lang.Deprecated() fld public final static com.oracle.truffle.api.interop.Message NEW + anno 0 java.lang.Deprecated() fld public final static com.oracle.truffle.api.interop.Message READ + anno 0 java.lang.Deprecated() fld public final static com.oracle.truffle.api.interop.Message REMOVE + anno 0 java.lang.Deprecated() fld public final static com.oracle.truffle.api.interop.Message TO_NATIVE + anno 0 java.lang.Deprecated() fld public final static com.oracle.truffle.api.interop.Message UNBOX + anno 0 java.lang.Deprecated() fld public final static com.oracle.truffle.api.interop.Message WRITE + anno 0 java.lang.Deprecated() meth public abstract boolean equals(java.lang.Object) meth public abstract int hashCode() meth public final com.oracle.truffle.api.nodes.Node createNode() + anno 0 java.lang.Deprecated() meth public static com.oracle.truffle.api.interop.Message createExecute(int) anno 0 java.lang.Deprecated() meth public static com.oracle.truffle.api.interop.Message createInvoke(int) @@ -1666,10 +1807,12 @@ meth public static com.oracle.truffle.api.interop.Message createNew(int) anno 0 java.lang.Deprecated() meth public static com.oracle.truffle.api.interop.Message valueOf(java.lang.String) meth public static java.lang.String toString(com.oracle.truffle.api.interop.Message) + anno 0 java.lang.Deprecated() supr java.lang.Object -hfds CLASS_TO_MESSAGE +hfds CLASS_TO_MESSAGE,uncached CLSS public abstract interface !annotation com.oracle.truffle.api.interop.MessageResolution + anno 0 java.lang.Deprecated() anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=SOURCE) anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[TYPE]) intf java.lang.annotation.Annotation @@ -1678,33 +1821,85 @@ meth public abstract !hasdefault java.lang.Class language() meth public abstract java.lang.Class receiverType() CLSS public abstract interface !annotation com.oracle.truffle.api.interop.Resolve + anno 0 java.lang.Deprecated() anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=SOURCE) anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[TYPE]) intf java.lang.annotation.Annotation meth public abstract java.lang.String message() CLSS public abstract interface com.oracle.truffle.api.interop.TruffleObject -meth public abstract com.oracle.truffle.api.interop.ForeignAccess getForeignAccess() +meth public com.oracle.truffle.api.interop.ForeignAccess getForeignAccess() + anno 0 java.lang.Deprecated() CLSS public final com.oracle.truffle.api.interop.UnknownIdentifierException +meth public java.lang.String getMessage() meth public java.lang.String getUnknownIdentifier() +meth public static com.oracle.truffle.api.interop.UnknownIdentifierException create(java.lang.String) meth public static java.lang.RuntimeException raise(java.lang.String) + anno 0 java.lang.Deprecated() supr com.oracle.truffle.api.interop.InteropException hfds serialVersionUID,unknownIdentifier CLSS public final com.oracle.truffle.api.interop.UnsupportedMessageException meth public com.oracle.truffle.api.interop.Message getUnsupportedMessage() + anno 0 java.lang.Deprecated() +meth public java.lang.String getMessage() +meth public static com.oracle.truffle.api.interop.UnsupportedMessageException create() meth public static java.lang.RuntimeException raise(com.oracle.truffle.api.interop.Message) + anno 0 java.lang.Deprecated() supr com.oracle.truffle.api.interop.InteropException -hfds message,serialVersionUID +hfds LEGACY,message,serialVersionUID CLSS public final com.oracle.truffle.api.interop.UnsupportedTypeException meth public java.lang.Object[] getSuppliedValues() +meth public static com.oracle.truffle.api.interop.UnsupportedTypeException create(java.lang.Object[]) +meth public static com.oracle.truffle.api.interop.UnsupportedTypeException create(java.lang.Object[],java.lang.String) meth public static java.lang.RuntimeException raise(java.lang.Exception,java.lang.Object[]) + anno 0 java.lang.Deprecated() meth public static java.lang.RuntimeException raise(java.lang.Object[]) + anno 0 java.lang.Deprecated() supr com.oracle.truffle.api.interop.InteropException hfds serialVersionUID,suppliedValues +CLSS public abstract interface !annotation com.oracle.truffle.api.library.ExportLibrary + anno 0 java.lang.annotation.Repeatable(java.lang.Class value=class com.oracle.truffle.api.library.ExportLibrary$Repeat) + anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) + anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[TYPE]) +innr public abstract interface static !annotation Repeat +intf java.lang.annotation.Annotation +meth public abstract !hasdefault java.lang.Class receiverType() +meth public abstract java.lang.Class value() + +CLSS public abstract interface !annotation com.oracle.truffle.api.library.GenerateLibrary + anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=CLASS) + anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[TYPE]) +innr public abstract interface static !annotation Abstract +innr public abstract interface static !annotation DefaultExport +intf java.lang.annotation.Annotation +meth public abstract !hasdefault java.lang.Class assertions() +meth public abstract !hasdefault java.lang.Class receiverType() + +CLSS public abstract interface static !annotation com.oracle.truffle.api.library.GenerateLibrary$DefaultExport + outer com.oracle.truffle.api.library.GenerateLibrary + anno 0 java.lang.annotation.Repeatable(java.lang.Class value=class com.oracle.truffle.api.library.GenerateLibrary$DefaultExport$Repeat) + anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=CLASS) + anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[TYPE]) +innr public abstract interface static !annotation Repeat +intf java.lang.annotation.Annotation +meth public abstract java.lang.Class value() + +CLSS public abstract interface static !annotation com.oracle.truffle.api.library.GenerateLibrary$DefaultExport$Repeat + outer com.oracle.truffle.api.library.GenerateLibrary$DefaultExport + anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=CLASS) + anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[TYPE]) +intf java.lang.annotation.Annotation +meth public abstract com.oracle.truffle.api.library.GenerateLibrary$DefaultExport[] value() + +CLSS public abstract com.oracle.truffle.api.library.Library +cons protected init() +meth public abstract boolean accepts(java.lang.Object) +supr com.oracle.truffle.api.nodes.Node + CLSS public com.oracle.truffle.api.nodes.ControlFlowException cons public init() meth public final java.lang.Throwable fillInStackTrace() @@ -1714,6 +1909,7 @@ hfds serialVersionUID CLSS public abstract com.oracle.truffle.api.nodes.DirectCallNode cons protected init(com.oracle.truffle.api.CallTarget) fld protected final com.oracle.truffle.api.CallTarget callTarget +meth public abstract !varargs java.lang.Object call(java.lang.Object[]) meth public abstract boolean cloneCallTarget() meth public abstract boolean isCallTargetCloningAllowed() meth public abstract boolean isInlinable() @@ -1724,29 +1920,25 @@ meth public com.oracle.truffle.api.CallTarget getCallTarget() meth public com.oracle.truffle.api.CallTarget getCurrentCallTarget() meth public final boolean isCallTargetCloned() meth public final com.oracle.truffle.api.nodes.RootNode getCurrentRootNode() -meth public java.lang.Object call(com.oracle.truffle.api.frame.VirtualFrame,java.lang.Object[]) - anno 0 java.lang.Deprecated() -meth public java.lang.Object call(java.lang.Object[]) meth public java.lang.String toString() meth public static com.oracle.truffle.api.nodes.DirectCallNode create(com.oracle.truffle.api.CallTarget) supr com.oracle.truffle.api.nodes.Node -hfds LEGACY_FRAME,legacyFrame CLSS public abstract com.oracle.truffle.api.nodes.ExecutableNode cons protected init(com.oracle.truffle.api.TruffleLanguage) meth public abstract java.lang.Object execute(com.oracle.truffle.api.frame.VirtualFrame) meth public final <%0 extends com.oracle.truffle.api.TruffleLanguage> {%%0} getLanguage(java.lang.Class<{%%0}>) + anno 0 java.lang.Deprecated() meth public final com.oracle.truffle.api.nodes.LanguageInfo getLanguageInfo() supr com.oracle.truffle.api.nodes.Node -hfds language +hfds GENERIC,language,referenceCache,sourceVM +hcls ReferenceCache CLSS public abstract interface !annotation com.oracle.truffle.api.nodes.ExplodeLoop anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[METHOD]) innr public final static !enum LoopExplosionKind intf java.lang.annotation.Annotation -meth public abstract !hasdefault boolean merge() - anno 0 java.lang.Deprecated() meth public abstract !hasdefault com.oracle.truffle.api.nodes.ExplodeLoop$LoopExplosionKind kind() CLSS public final static !enum com.oracle.truffle.api.nodes.ExplodeLoop$LoopExplosionKind @@ -1816,12 +2008,11 @@ intf java.lang.annotation.Annotation CLSS public abstract com.oracle.truffle.api.nodes.IndirectCallNode cons protected init() -meth public java.lang.Object call(com.oracle.truffle.api.CallTarget,java.lang.Object[]) -meth public java.lang.Object call(com.oracle.truffle.api.frame.VirtualFrame,com.oracle.truffle.api.CallTarget,java.lang.Object[]) - anno 0 java.lang.Deprecated() +meth public abstract !varargs java.lang.Object call(com.oracle.truffle.api.CallTarget,java.lang.Object[]) meth public static com.oracle.truffle.api.nodes.IndirectCallNode create() +meth public static com.oracle.truffle.api.nodes.IndirectCallNode getUncached() supr com.oracle.truffle.api.nodes.Node -hfds dummyFrame +hfds CURRENT_CALL_NODE,UNCACHED CLSS public final com.oracle.truffle.api.nodes.InvalidAssumptionException cons public init() @@ -1854,14 +2045,15 @@ intf com.oracle.truffle.api.nodes.NodeInterface intf java.lang.Cloneable meth protected boolean isTaggedWith(java.lang.Class) anno 0 java.lang.Deprecated() +meth protected final <%0 extends com.oracle.truffle.api.TruffleLanguage> com.oracle.truffle.api.TruffleLanguage$LanguageReference<{%%0}> lookupLanguageReference(java.lang.Class<{%%0}>) meth protected final <%0 extends com.oracle.truffle.api.nodes.Node> {%%0} insert({%%0}) meth protected final <%0 extends com.oracle.truffle.api.nodes.Node> {%%0}[] insert({%%0}[]) -meth protected final java.lang.Object getAtomicLock() - anno 0 java.lang.Deprecated() +meth protected final <%0 extends java.lang.Object, %1 extends com.oracle.truffle.api.TruffleLanguage<{%%0}>> com.oracle.truffle.api.TruffleLanguage$ContextReference<{%%0}> lookupContextReference(java.lang.Class<{%%1}>) meth protected final java.util.concurrent.locks.Lock getLock() meth protected final void notifyInserted(com.oracle.truffle.api.nodes.Node) meth protected final void reportPolymorphicSpecialize() meth protected void onReplace(com.oracle.truffle.api.nodes.Node,java.lang.CharSequence) +meth public boolean isAdoptable() meth public com.oracle.truffle.api.nodes.Node copy() meth public com.oracle.truffle.api.nodes.Node deepCopy() meth public com.oracle.truffle.api.nodes.NodeCost getCost() @@ -1878,12 +2070,10 @@ meth public final void accept(com.oracle.truffle.api.nodes.NodeVisitor) meth public final void adoptChildren() meth public final void atomic(java.lang.Runnable) meth public java.lang.String getDescription() -meth public java.lang.String getLanguage() - anno 0 java.lang.Deprecated() meth public java.lang.String toString() meth public java.util.Map getDebugProperties() supr java.lang.Object -hfds ACCESSOR,GIL,GIL_LOCK,parent +hfds ACCESSOR,GIL_LOCK,UNCACHED_CONTEXT_REFERENCES,UNCACHED_LANGUAGE_REFERENCES,parent hcls AccessorNodes CLSS public abstract interface static !annotation com.oracle.truffle.api.nodes.Node$Child @@ -1941,6 +2131,7 @@ fld public final static com.oracle.truffle.api.nodes.NodeCost NONE fld public final static com.oracle.truffle.api.nodes.NodeCost POLYMORPHIC fld public final static com.oracle.truffle.api.nodes.NodeCost UNINITIALIZED meth public boolean isTrivial() +meth public static com.oracle.truffle.api.nodes.NodeCost fromCount(int) meth public static com.oracle.truffle.api.nodes.NodeCost valueOf(java.lang.String) meth public static com.oracle.truffle.api.nodes.NodeCost[] values() supr java.lang.Enum @@ -2006,8 +2197,6 @@ meth public abstract !hasdefault java.lang.String shortName() CLSS public abstract interface com.oracle.truffle.api.nodes.NodeInterface CLSS public final com.oracle.truffle.api.nodes.NodeUtil -cons public init() - anno 0 java.lang.Deprecated() innr public abstract interface static NodeCountFilter meth public static <%0 extends com.oracle.truffle.api.nodes.Node> {%%0} cloneNode({%%0}) meth public static <%0 extends com.oracle.truffle.api.nodes.Node> {%%0} nonAtomicReplace(com.oracle.truffle.api.nodes.Node,{%%0},java.lang.CharSequence) @@ -2021,7 +2210,9 @@ meth public static boolean forEachChild(com.oracle.truffle.api.nodes.Node,com.or meth public static boolean isReplacementSafe(com.oracle.truffle.api.nodes.Node,com.oracle.truffle.api.nodes.Node,com.oracle.truffle.api.nodes.Node) meth public static boolean replaceChild(com.oracle.truffle.api.nodes.Node,com.oracle.truffle.api.nodes.Node,com.oracle.truffle.api.nodes.Node) meth public static boolean verify(com.oracle.truffle.api.nodes.Node) +meth public static com.oracle.truffle.api.nodes.Node getCurrentEncapsulatingNode() meth public static com.oracle.truffle.api.nodes.Node getNthParent(com.oracle.truffle.api.nodes.Node,int) +meth public static com.oracle.truffle.api.nodes.Node pushEncapsulatingNode(com.oracle.truffle.api.nodes.Node) meth public static com.oracle.truffle.api.nodes.NodeFieldAccessor findChildField(com.oracle.truffle.api.nodes.Node,com.oracle.truffle.api.nodes.Node) anno 0 java.lang.Deprecated() meth public static int countNodes(com.oracle.truffle.api.nodes.Node) @@ -2033,12 +2224,14 @@ meth public static java.lang.String printTreeToString(com.oracle.truffle.api.nod meth public static java.util.Iterator makeRecursiveIterator(com.oracle.truffle.api.nodes.Node) meth public static java.util.List collectNodes(com.oracle.truffle.api.nodes.Node,com.oracle.truffle.api.nodes.Node) meth public static java.util.List findNodeChildren(com.oracle.truffle.api.nodes.Node) +meth public static void popEncapsulatingNode(com.oracle.truffle.api.nodes.Node) meth public static void printCompactTree(java.io.OutputStream,com.oracle.truffle.api.nodes.Node) meth public static void printSourceAttributionTree(java.io.OutputStream,com.oracle.truffle.api.nodes.Node) meth public static void printSourceAttributionTree(java.io.PrintWriter,com.oracle.truffle.api.nodes.Node) meth public static void printTree(java.io.OutputStream,com.oracle.truffle.api.nodes.Node) meth public static void printTree(java.io.PrintWriter,com.oracle.truffle.api.nodes.Node) supr java.lang.Object +hfds CURRENT_ENCAPSULATING_NODE hcls NodeCounter,RecursiveNodeIterator CLSS public abstract interface static com.oracle.truffle.api.nodes.NodeUtil$NodeCountFilter @@ -2059,25 +2252,21 @@ cons protected init(com.oracle.truffle.api.TruffleLanguage,com.oracle.truffle meth protected boolean isCloneUninitializedSupported() meth protected boolean isInstrumentable() meth protected com.oracle.truffle.api.nodes.RootNode cloneUninitialized() +meth protected final void setCallTarget(com.oracle.truffle.api.RootCallTarget) meth public abstract java.lang.Object execute(com.oracle.truffle.api.frame.VirtualFrame) meth public boolean isCaptureFramesForTrace() meth public boolean isCloningAllowed() meth public boolean isInternal() meth public com.oracle.truffle.api.CompilerOptions getCompilerOptions() -meth public com.oracle.truffle.api.ExecutionContext getExecutionContext() - anno 0 java.lang.Deprecated() meth public com.oracle.truffle.api.nodes.Node copy() meth public final <%0 extends java.lang.Object, %1 extends com.oracle.truffle.api.TruffleLanguage<{%%0}>> {%%0} getCurrentContext(java.lang.Class<{%%1}>) + anno 0 java.lang.Deprecated() meth public final com.oracle.truffle.api.RootCallTarget getCallTarget() meth public final com.oracle.truffle.api.frame.FrameDescriptor getFrameDescriptor() -meth public final void reportLoopCount(int) - anno 0 java.lang.Deprecated() -meth public final void setCallTarget(com.oracle.truffle.api.RootCallTarget) - anno 0 java.lang.Deprecated() meth public java.lang.String getName() meth public static com.oracle.truffle.api.nodes.RootNode createConstantNode(java.lang.Object) supr com.oracle.truffle.api.nodes.ExecutableNode -hfds callTarget,frameDescriptor,instrumentationBits,lock,sourceVM +hfds callTarget,frameDescriptor,instrumentationBits,lock hcls Constant CLSS public com.oracle.truffle.api.nodes.SlowPathException @@ -2086,6 +2275,7 @@ cons public init(java.lang.String) cons public init(java.lang.String,java.lang.Throwable) cons public init(java.lang.Throwable) meth public java.lang.Throwable fillInStackTrace() + anno 0 java.lang.Deprecated() supr java.lang.Exception hfds serialVersionUID @@ -2117,7 +2307,6 @@ CLSS public abstract com.oracle.truffle.api.object.DynamicObject cons protected init() anno 0 java.lang.Deprecated() cons protected init(com.oracle.truffle.api.object.Shape) -intf com.oracle.truffle.api.TypedObject intf com.oracle.truffle.api.interop.TruffleObject meth public abstract boolean delete(java.lang.Object) meth public abstract boolean isEmpty() @@ -2272,7 +2461,9 @@ CLSS public com.oracle.truffle.api.object.ObjectType cons public init() meth public boolean equals(com.oracle.truffle.api.object.DynamicObject,java.lang.Object) meth public com.oracle.truffle.api.interop.ForeignAccess getForeignAccessFactory(com.oracle.truffle.api.object.DynamicObject) + anno 0 java.lang.Deprecated() meth public int hashCode(com.oracle.truffle.api.object.DynamicObject) +meth public java.lang.Class dispatch() meth public java.lang.String toString(com.oracle.truffle.api.object.DynamicObject) supr java.lang.Object @@ -2393,16 +2584,16 @@ CLSS public abstract interface !annotation com.oracle.truffle.api.object.dsl.Vol intf java.lang.annotation.Annotation CLSS public abstract com.oracle.truffle.api.profiles.BranchProfile -meth public abstract boolean isVisited() - anno 0 java.lang.Deprecated() meth public abstract void enter() meth public static com.oracle.truffle.api.profiles.BranchProfile create() +meth public static com.oracle.truffle.api.profiles.BranchProfile getUncached() supr com.oracle.truffle.api.profiles.Profile hcls Disabled,Enabled CLSS public abstract com.oracle.truffle.api.profiles.ByteValueProfile meth public abstract byte profile(byte) meth public static com.oracle.truffle.api.profiles.ByteValueProfile createIdentityProfile() +meth public static com.oracle.truffle.api.profiles.ByteValueProfile getUncached() supr com.oracle.truffle.api.profiles.Profile hcls Disabled,Enabled @@ -2410,30 +2601,35 @@ CLSS public abstract com.oracle.truffle.api.profiles.ConditionProfile meth public abstract boolean profile(boolean) meth public static com.oracle.truffle.api.profiles.ConditionProfile createBinaryProfile() meth public static com.oracle.truffle.api.profiles.ConditionProfile createCountingProfile() +meth public static com.oracle.truffle.api.profiles.ConditionProfile getUncached() supr com.oracle.truffle.api.profiles.Profile hcls Binary,Counting,Disabled CLSS public abstract com.oracle.truffle.api.profiles.DoubleValueProfile meth public abstract double profile(double) meth public static com.oracle.truffle.api.profiles.DoubleValueProfile createRawIdentityProfile() +meth public static com.oracle.truffle.api.profiles.DoubleValueProfile getUncached() supr com.oracle.truffle.api.profiles.Profile hcls Disabled,Enabled CLSS public abstract com.oracle.truffle.api.profiles.FloatValueProfile meth public abstract float profile(float) meth public static com.oracle.truffle.api.profiles.FloatValueProfile createRawIdentityProfile() +meth public static com.oracle.truffle.api.profiles.FloatValueProfile getUncached() supr com.oracle.truffle.api.profiles.Profile hcls Disabled,Enabled CLSS public abstract com.oracle.truffle.api.profiles.IntValueProfile meth public abstract int profile(int) meth public static com.oracle.truffle.api.profiles.IntValueProfile createIdentityProfile() +meth public static com.oracle.truffle.api.profiles.IntValueProfile getUncached() supr com.oracle.truffle.api.profiles.Profile hcls Disabled,Enabled CLSS public abstract com.oracle.truffle.api.profiles.LongValueProfile meth public abstract long profile(long) meth public static com.oracle.truffle.api.profiles.LongValueProfile createIdentityProfile() +meth public static com.oracle.truffle.api.profiles.LongValueProfile getUncached() supr com.oracle.truffle.api.profiles.Profile hcls Disabled,Enabled @@ -2442,6 +2638,7 @@ meth public abstract boolean inject(boolean) meth public abstract boolean profile(boolean) meth public abstract void profileCounted(long) meth public static com.oracle.truffle.api.profiles.LoopConditionProfile createCountingProfile() +meth public static com.oracle.truffle.api.profiles.LoopConditionProfile getUncached() supr com.oracle.truffle.api.profiles.ConditionProfile hcls Disabled,Enabled @@ -2455,11 +2652,8 @@ meth public abstract float profile(float) meth public abstract int profile(int) meth public abstract long profile(long) meth public abstract short profile(short) -meth public static boolean exactCompare(double,double) - anno 0 java.lang.Deprecated() -meth public static boolean exactCompare(float,float) - anno 0 java.lang.Deprecated() meth public static com.oracle.truffle.api.profiles.PrimitiveValueProfile createEqualityProfile() +meth public static com.oracle.truffle.api.profiles.PrimitiveValueProfile getUncached() supr com.oracle.truffle.api.profiles.ValueProfile hcls Disabled,Enabled @@ -2471,6 +2665,7 @@ meth public abstract <%0 extends java.lang.Object> {%%0} profile({%%0}) meth public static com.oracle.truffle.api.profiles.ValueProfile createClassProfile() meth public static com.oracle.truffle.api.profiles.ValueProfile createEqualityProfile() meth public static com.oracle.truffle.api.profiles.ValueProfile createIdentityProfile() +meth public static com.oracle.truffle.api.profiles.ValueProfile getUncached() supr com.oracle.truffle.api.profiles.Profile hcls Disabled,Equality,ExactClass,Identity @@ -2543,6 +2738,7 @@ meth public static java.lang.String findMimeType(com.oracle.truffle.api.TruffleF meth public static java.lang.String findMimeType(java.net.URL) throws java.io.IOException supr java.lang.Object hfds BUFFER_SIZE,BYTE_SEQUENCE_CLASS,CONTENT_UNSET,EMPTY,MAX_BUFFER_SIZE,NO_FASTPATH_SUBSOURCE_CREATION_MESSAGE,S,SOURCES,UNKNOWN_MIME_TYPE,URI_SCHEME,computedURI,polyglotSource,textMap +hcls FileSystemContextSupplier CLSS public com.oracle.truffle.api.source.Source$Builder<%0 extends java.lang.Exception, %1 extends java.lang.Exception, %2 extends java.lang.Exception> outer com.oracle.truffle.api.source.Source @@ -2574,6 +2770,7 @@ CLSS public final com.oracle.truffle.api.source.Source$LiteralBuilder outer com.oracle.truffle.api.source.Source meth public com.oracle.truffle.api.source.Source build() meth public com.oracle.truffle.api.source.Source$LiteralBuilder cached(boolean) +meth public com.oracle.truffle.api.source.Source$LiteralBuilder encoding(java.nio.charset.Charset) meth public com.oracle.truffle.api.source.Source$LiteralBuilder interactive(boolean) meth public com.oracle.truffle.api.source.Source$LiteralBuilder internal(boolean) meth public com.oracle.truffle.api.source.Source$LiteralBuilder mimeType(java.lang.String) @@ -2587,13 +2784,14 @@ meth public com.oracle.truffle.api.source.Source build() throws java.io.IOExcept meth public com.oracle.truffle.api.source.Source$LiteralBuilder content(java.lang.CharSequence) meth public com.oracle.truffle.api.source.Source$LiteralBuilder content(org.graalvm.polyglot.io.ByteSequence) meth public com.oracle.truffle.api.source.Source$SourceBuilder cached(boolean) +meth public com.oracle.truffle.api.source.Source$SourceBuilder encoding(java.nio.charset.Charset) meth public com.oracle.truffle.api.source.Source$SourceBuilder interactive(boolean) meth public com.oracle.truffle.api.source.Source$SourceBuilder internal(boolean) meth public com.oracle.truffle.api.source.Source$SourceBuilder mimeType(java.lang.String) meth public com.oracle.truffle.api.source.Source$SourceBuilder name(java.lang.String) meth public com.oracle.truffle.api.source.Source$SourceBuilder uri(java.net.URI) supr java.lang.Object -hfds cached,content,interactive,internal,language,mimeType,name,origin,uri +hfds cached,content,embedderFileSystemContext,fileEncoding,interactive,internal,language,mimeType,name,origin,uri CLSS public abstract com.oracle.truffle.api.source.SourceSection meth public abstract boolean equals(java.lang.Object) @@ -2641,9 +2839,7 @@ meth public void invalidate(java.lang.String) supr java.lang.Object hfds ASSUMPTION_UPDATER,assumption,name -CLSS public com.oracle.truffle.api.utilities.JSONHelper -cons public init() - anno 0 java.lang.Deprecated() +CLSS public final com.oracle.truffle.api.utilities.JSONHelper innr public abstract static JSONStringBuilder innr public final static JSONArrayBuilder innr public final static JSONObjectBuilder @@ -2685,8 +2881,6 @@ hfds contents CLSS public abstract static com.oracle.truffle.api.utilities.JSONHelper$JSONStringBuilder outer com.oracle.truffle.api.utilities.JSONHelper -cons protected init() - anno 0 java.lang.Deprecated() meth protected abstract void appendTo(java.lang.StringBuilder) meth protected static void appendValue(java.lang.StringBuilder,java.lang.Object) meth public final java.lang.String toString() @@ -2766,11 +2960,6 @@ CLSS public abstract interface !annotation java.lang.FunctionalInterface anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[TYPE]) intf java.lang.annotation.Annotation -CLSS public abstract interface java.lang.Iterable<%0 extends java.lang.Object> -meth public abstract java.util.Iterator<{java.lang.Iterable%0}> iterator() -meth public java.util.Spliterator<{java.lang.Iterable%0}> spliterator() -meth public void forEach(java.util.function.Consumer) - CLSS public java.lang.Object cons public init() meth protected java.lang.Object clone() throws java.lang.CloneNotSupportedException diff --git a/webcommon/libs.truffleapi/nbproject/project.properties b/webcommon/libs.truffleapi/nbproject/project.properties index 472607867e89..61c6c809dde8 100644 --- a/webcommon/libs.truffleapi/nbproject/project.properties +++ b/webcommon/libs.truffleapi/nbproject/project.properties @@ -19,4 +19,4 @@ javac.source=1.8 javac.compilerargs=-Xlint -Xlint:-serial is.autoload=true -release.external/truffle-api-1.0.0-rc12.jar=modules/ext/truffle-api-1.0.0-rc12.jar +release.external/truffle-api-19.0.0.jar=modules/ext/truffle-api-19.0.0.jar diff --git a/webcommon/libs.truffleapi/nbproject/project.xml b/webcommon/libs.truffleapi/nbproject/project.xml index f4a4bb1b6b7f..51dd49759417 100644 --- a/webcommon/libs.truffleapi/nbproject/project.xml +++ b/webcommon/libs.truffleapi/nbproject/project.xml @@ -49,8 +49,8 @@ com.oracle.truffle.api.utilities - ext/truffle-api-1.0.0-rc12.jar - external/truffle-api-1.0.0-rc12.jar + ext/truffle-api-19.0.0.jar + external/truffle-api-19.0.0.jar