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