Module jdk.scripting.nashorn
Package jdk.nashorn.api.scripting

## Class ScriptUtils

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

-     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 | 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