/** * Invoked when a call target is invoked to find out its option values. * {@link OptionValues#getDescriptors()} must match the value returned by * {@link #getCompilerOptionDescriptors()}. * * @since 0.27 */ protected OptionValues getCompilerOptionValues(RootNode rootNode) { EngineSupport engine = Accessor.engineAccess(); return engine != null ? engine.getCompilerOptionValues(rootNode) : null; }
/** * Invoked when a call target is invoked to find out its option values. * {@link OptionValues#getDescriptors()} must match the value returned by * {@link #getCompilerOptionDescriptors()}. * * @since 0.27 */ protected OptionValues getCompilerOptionValues(RootNode rootNode) { EngineSupport engine = Accessor.engineAccess(); return engine != null ? engine.getCompilerOptionValues(rootNode) : null; }
protected <T> T getOrCreateRuntimeData(RootNode rootNode, Supplier<T> constructor) { Objects.requireNonNull(constructor); final Accessor.Nodes nodesAccess = Accessor.nodesAccess(); final EngineSupport engineAccess = Accessor.engineAccess(); if (rootNode != null && nodesAccess != null && engineAccess != null) { final Object sourceVM = nodesAccess.getSourceVM(rootNode); if (sourceVM != null) { final T runtimeData = engineAccess.getOrCreateRuntimeData(sourceVM, constructor); if (runtimeData != null) { return runtimeData; } } } return getOrCreateFallbackEngineData(constructor); }
protected <T> T getOrCreateRuntimeData(RootNode rootNode, Supplier<T> constructor) { Objects.requireNonNull(constructor); final Accessor.Nodes nodesAccess = Accessor.nodesAccess(); final EngineSupport engineAccess = Accessor.engineAccess(); if (rootNode != null && nodesAccess != null && engineAccess != null) { final Object sourceVM = nodesAccess.getSourceVM(rootNode); if (sourceVM != null) { final T runtimeData = engineAccess.getOrCreateRuntimeData(sourceVM, constructor); if (runtimeData != null) { return runtimeData; } } } return getOrCreateFallbackEngineData(constructor); }