---
title: "JSEvaluateScript(_:_:_:_:_:_:)"
framework: JavaScriptCore
role: symbol
role_heading: Function
platforms: [iOS 16.0+, iPadOS 16.0+, Mac Catalyst 13.0+, macOS 10.5+, tvOS 9.0+, visionOS 1.0+]
path: "javascriptcore/jsevaluatescript(_:_:_:_:_:_:)"
---

# JSEvaluateScript(_:_:_:_:_:_:)

Evaluates a string of JavaScript.

## Declaration

```swift
func JSEvaluateScript(_ ctx: JSContextRef!, _ script: JSStringRef!, _ thisObject: JSObjectRef!, _ sourceURL: JSStringRef!, _ startingLineNumber: Int32, _ exception: UnsafeMutablePointer<JSValueRef?>!) -> JSValueRef!
```

## Parameters

- `ctx`: The execution context to use.
- `script`: A doc://com.apple.javascriptcore/documentation/JavaScriptCore/JSStringRef that contains the script to evaluate.
- `thisObject`: The object to use as this or NULL to use the global object as this.
- `sourceURL`: A doc://com.apple.javascriptcore/documentation/JavaScriptCore/JSStringRef that contains a URL for the script’s source file. The system only uses this when reporting exceptions. Pass NULL to omit source file information in exceptions.
- `startingLineNumber`: An integer value that specifies the script’s starting line number in the file at sourceURL. The system only uses this when reporting exceptions.
- `exception`: A pointer to a doc://com.apple.javascriptcore/documentation/JavaScriptCore/JSValueRef to store an exception in, if any. Pass NULL to discard any exception.

## Return Value

Return Value The value that results from evaluating script, or NULL if the system throws an exception.

## See Also

### Script Evaluation

- [JSCheckScriptSyntax(_:_:_:_:_:)](javascriptcore/jscheckscriptsyntax(_:_:_:_:_:).md)
- [JSGarbageCollect(_:)](javascriptcore/jsgarbagecollect(_:).md)
