ScriptUtils (Nashorn API )
Keywords: jdk.nashorn.api.scripting.ScriptUtils class
Date: 2026-03-16

compact1, compact2, compact3
jdk.nashorn.api.scripting

## Class ScriptUtils

- java.lang.Object
- - jdk.nashorn.api.scripting.ScriptUtils

-     @Exported
      public final class ScriptUtils
      extends Object

  Utilities that are to be called from script code.
  Since:
    1.8u40

- - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static Object` | `convert(Object obj, Object type)` Convert the given object to the given type.
    `static String` | `format(String format, Object[] args)` Method which converts javascript types to java types for the String.format method (jrunscript function sprintf).
    `static Object` | `makeSynchronizedFunction(Object func, Object sync)` Create a wrapper function that calls `func` synchronized on `sync` or, if that is undefined, `self`.
    `static String` | `parse(String code, String name, boolean includeLoc)` Returns AST as JSON compatible string.
    `static Object` | `unwrap(Object obj)` Unwrap a script object mirror if needed.
    `static Object[]` | `unwrapArray(Object[] args)` Unwrap an array of script object mirrors if needed.
    `static ScriptObjectMirror` | `wrap(Object obj)` Make a script object mirror on given object if needed.
    `static Object[]` | `wrapArray(Object[] args)` Wrap an array of object to script object mirrors if needed.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Method Detail

    - #### parse

          public static String parse(String code,
                                     String name,
                                     boolean includeLoc)

      Returns AST as JSON compatible string. This is used to implement "parse" function in resources/parse.js script.
      Parameters:
        `code` - code to be parsed
        `name` - name of the code source (used for location)
        `includeLoc` - tells whether to include location information for nodes or not
      Returns:
        JSON string representation of AST of the supplied code

    - #### format

          public static String format(String format,
                                      Object[] args)

      Method which converts javascript types to java types for the String.format method (jrunscript function sprintf).
      Parameters:
        `format` - a format string
        `args` - arguments referenced by the format specifiers in format
      Returns:
        a formatted string

    - #### makeSynchronizedFunction

          public static Object makeSynchronizedFunction(Object func,
                                                        Object sync)

      Create a wrapper function that calls `func` synchronized on `sync` or, if that is undefined, `self`. Used to implement "sync" function in resources/mozilla_compat.js.
      Parameters:
        `func` - the function to wrap
        `sync` - the object to synchronize on
      Returns:
        a synchronizing wrapper function
      Throws:
        `IllegalArgumentException` - if func does not represent a script function

    - #### wrap

          public static ScriptObjectMirror wrap(Object obj)

      Make a script object mirror on given object if needed.
      Parameters:
        `obj` - object to be wrapped
      Returns:
        wrapped object
      Throws:
        `IllegalArgumentException` - if obj cannot be wrapped

    - #### unwrap

          public static Object unwrap(Object obj)

      Unwrap a script object mirror if needed.
      Parameters:
        `obj` - object to be unwrapped
      Returns:
        unwrapped object

    - #### wrapArray

          public static Object[] wrapArray(Object[] args)

      Wrap an array of object to script object mirrors if needed.
      Parameters:
        `args` - array to be unwrapped
      Returns:
        wrapped array

    - #### unwrapArray

          public static Object[] unwrapArray(Object[] args)

      Unwrap an array of script object mirrors if needed.
      Parameters:
        `args` - array to be unwrapped
      Returns:
        unwrapped array

    - #### convert

          public static Object convert(Object obj,
                                       Object type)

      Convert the given object to the given type.
      Parameters:
        `obj` - object to be converted
        `type` - destination type to convert to. type is either a Class or nashorn representation of a Java type returned by Java.type() call in script.
      Returns:
        converted object

Copyright © 2014, 2026, Oracle and/or its affiliates. All rights reserved.