# IsolateStartupParameters

# IsolateStartupParameters

Artifact:[androidx.javascriptengine:javascriptengine](https://developer.android.com/jetpack/androidx/releases/javascriptengine)  
[View Source](https://cs.android.com/search?q=file:androidx/javascriptengine/IsolateStartupParameters.java+class:androidx.javascriptengine.IsolateStartupParameters)  
Added in[1.0.0](https://developer.android.com/jetpack/androidx/releases/javascriptengine#1.0.0)

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/androidx/javascriptengine/IsolateStartupParameters "View this page in Java")

<br />

```
class IsolateStartupParameters
```

<br />

*** ** * ** ***

Class used to set startup parameters for[JavaScriptIsolate](https://developer.android.com/reference/kotlin/androidx/javascriptengine/JavaScriptIsolate).

## Summary

|                                     ### Constants                                     |
|---------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `const `[Long](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html) | [AUTOMATIC_MAX_HEAP_SIZE](https://developer.android.com/reference/kotlin/androidx/javascriptengine/IsolateStartupParameters#AUTOMATIC_MAX_HEAP_SIZE())` = 0` Special value for automatically selecting a heap size limit (which may be device-specific) when the isolate is created. |
| `const `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)   | [DEFAULT_MAX_EVALUATION_RETURN_SIZE_BYTES](https://developer.android.com/reference/kotlin/androidx/javascriptengine/IsolateStartupParameters#DEFAULT_MAX_EVALUATION_RETURN_SIZE_BYTES())` = 20971520` Default maximum size in bytes for evaluation returns/errors.                   |

|                                                                   ### Public constructors                                                                    |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [IsolateStartupParameters](https://developer.android.com/reference/kotlin/androidx/javascriptengine/IsolateStartupParameters#IsolateStartupParameters())`()` |

|                                                                                 ### Public functions                                                                                 |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `@`[IntRange](https://developer.android.com/reference/kotlin/androidx/annotation/IntRange)`(from = 0) `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)   | [getMaxEvaluationReturnSizeBytes](https://developer.android.com/reference/kotlin/androidx/javascriptengine/IsolateStartupParameters#getMaxEvaluationReturnSizeBytes())`()` Gets the max size for evaluation return values and errors in the[JavaScriptIsolate](https://developer.android.com/reference/kotlin/androidx/javascriptengine/JavaScriptIsolate).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| `@`[IntRange](https://developer.android.com/reference/kotlin/androidx/annotation/IntRange)`(from = 0) `[Long](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html) | [getMaxHeapSizeBytes](https://developer.android.com/reference/kotlin/androidx/javascriptengine/IsolateStartupParameters#getMaxHeapSizeBytes())`()` Gets the max heap size used by the[JavaScriptIsolate](https://developer.android.com/reference/kotlin/androidx/javascriptengine/JavaScriptIsolate).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)                                                                                                        | `@`[RequiresFeature](https://developer.android.com/reference/kotlin/androidx/annotation/RequiresFeature)`(name = `[JavaScriptSandbox.JS_FEATURE_EVALUATE_WITHOUT_TRANSACTION_LIMIT](https://developer.android.com/reference/kotlin/androidx/javascriptengine/JavaScriptSandbox.JS_FEATURE_EVALUATE_WITHOUT_TRANSACTION_LIMIT)`, enforcement = "androidx.javascriptengine.JavaScriptSandbox#isFeatureSupported")` [setMaxEvaluationReturnSizeBytes](https://developer.android.com/reference/kotlin/androidx/javascriptengine/IsolateStartupParameters#setMaxEvaluationReturnSizeBytes(int))`(size: @`[IntRange](https://developer.android.com/reference/kotlin/androidx/annotation/IntRange)`(from = 0) `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`)` Sets the max size for evaluation return values and errors in the[JavaScriptIsolate](https://developer.android.com/reference/kotlin/androidx/javascriptengine/JavaScriptIsolate). |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)                                                                                                        | `@`[RequiresFeature](https://developer.android.com/reference/kotlin/androidx/annotation/RequiresFeature)`(name = `[JavaScriptSandbox.JS_FEATURE_ISOLATE_MAX_HEAP_SIZE](https://developer.android.com/reference/kotlin/androidx/javascriptengine/JavaScriptSandbox.JS_FEATURE_ISOLATE_MAX_HEAP_SIZE)`, enforcement = "androidx.javascriptengine.JavaScriptSandbox#isFeatureSupported")` [setMaxHeapSizeBytes](https://developer.android.com/reference/kotlin/androidx/javascriptengine/IsolateStartupParameters#setMaxHeapSizeBytes(long))`(size: @`[IntRange](https://developer.android.com/reference/kotlin/androidx/annotation/IntRange)`(from = 0) `[Long](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)`)` Sets the max heap size used by the[JavaScriptIsolate](https://developer.android.com/reference/kotlin/androidx/javascriptengine/JavaScriptIsolate).                                                                              |

## Constants

### AUTOMATIC_MAX_HEAP_SIZE

Added in[1.0.0](https://developer.android.com/jetpack/androidx/releases/javascriptengine#1.0.0)  

```
const val AUTOMATIC_MAX_HEAP_SIZE = 0: Long
```

Special value for automatically selecting a heap size limit (which may be device-specific) when the isolate is created. This is the default setting for max heap size.  

### DEFAULT_MAX_EVALUATION_RETURN_SIZE_BYTES

Added in[1.0.0](https://developer.android.com/jetpack/androidx/releases/javascriptengine#1.0.0)  

```
const val DEFAULT_MAX_EVALUATION_RETURN_SIZE_BYTES = 20971520: Int
```

Default maximum size in bytes for evaluation returns/errors.  

## Public constructors

### IsolateStartupParameters

Added in[1.0.0](https://developer.android.com/jetpack/androidx/releases/javascriptengine#1.0.0)  

```
IsolateStartupParameters()
```  

## Public functions

### getMaxEvaluationReturnSizeBytes

Added in[1.0.0](https://developer.android.com/jetpack/androidx/releases/javascriptengine#1.0.0)  

```
fun getMaxEvaluationReturnSizeBytes(): @IntRange(from = 0) Int
```

Gets the max size for evaluation return values and errors in the[JavaScriptIsolate](https://developer.android.com/reference/kotlin/androidx/javascriptengine/JavaScriptIsolate).

If not set using[setMaxEvaluationReturnSizeBytes](https://developer.android.com/reference/kotlin/androidx/javascriptengine/IsolateStartupParameters#setMaxEvaluationReturnSizeBytes(int)), the default value is[DEFAULT_MAX_EVALUATION_RETURN_SIZE_BYTES](https://developer.android.com/reference/kotlin/androidx/javascriptengine/IsolateStartupParameters#DEFAULT_MAX_EVALUATION_RETURN_SIZE_BYTES()).  

|                                                                                      Returns                                                                                       |
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------|
| `@`[IntRange](https://developer.android.com/reference/kotlin/androidx/annotation/IntRange)`(from = 0) `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | max size in bytes |

### getMaxHeapSizeBytes

Added in[1.0.0](https://developer.android.com/jetpack/androidx/releases/javascriptengine#1.0.0)  

```
fun getMaxHeapSizeBytes(): @IntRange(from = 0) Long
```

Gets the max heap size used by the[JavaScriptIsolate](https://developer.android.com/reference/kotlin/androidx/javascriptengine/JavaScriptIsolate).

The default value is[AUTOMATIC_MAX_HEAP_SIZE](https://developer.android.com/reference/kotlin/androidx/javascriptengine/IsolateStartupParameters#AUTOMATIC_MAX_HEAP_SIZE())which indicates a limit (which may be device-specific) will be chosen automatically when the isolate is created.  

|                                                                                       Returns                                                                                        |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `@`[IntRange](https://developer.android.com/reference/kotlin/androidx/annotation/IntRange)`(from = 0) `[Long](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html) | [AUTOMATIC_MAX_HEAP_SIZE](https://developer.android.com/reference/kotlin/androidx/javascriptengine/IsolateStartupParameters#AUTOMATIC_MAX_HEAP_SIZE())or a heap size limit in bytes |

### setMaxEvaluationReturnSizeBytes

Added in[1.0.0](https://developer.android.com/jetpack/androidx/releases/javascriptengine#1.0.0)  

```
@RequiresFeature(name = JavaScriptSandbox.JS_FEATURE_EVALUATE_WITHOUT_TRANSACTION_LIMIT, enforcement = "androidx.javascriptengine.JavaScriptSandbox#isFeatureSupported")
fun setMaxEvaluationReturnSizeBytes(size: @IntRange(from = 0) Int): Unit
```

Sets the max size for evaluation return values and errors in the[JavaScriptIsolate](https://developer.android.com/reference/kotlin/androidx/javascriptengine/JavaScriptIsolate).

The default value is[DEFAULT_MAX_EVALUATION_RETURN_SIZE_BYTES](https://developer.android.com/reference/kotlin/androidx/javascriptengine/IsolateStartupParameters#DEFAULT_MAX_EVALUATION_RETURN_SIZE_BYTES()).

If an evaluation exceeds this limit,[EvaluationResultSizeLimitExceededException](https://developer.android.com/reference/kotlin/androidx/javascriptengine/EvaluationResultSizeLimitExceededException)is produced. Error messages will be truncated to adhere to this limit.  

|                                                                                        Parameters                                                                                        |
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------|
| `size: @`[IntRange](https://developer.android.com/reference/kotlin/androidx/annotation/IntRange)`(from = 0) `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | max size in bytes |

### setMaxHeapSizeBytes

Added in[1.0.0](https://developer.android.com/jetpack/androidx/releases/javascriptengine#1.0.0)  

```
@RequiresFeature(name = JavaScriptSandbox.JS_FEATURE_ISOLATE_MAX_HEAP_SIZE, enforcement = "androidx.javascriptengine.JavaScriptSandbox#isFeatureSupported")
fun setMaxHeapSizeBytes(size: @IntRange(from = 0) Long): Unit
```

Sets the max heap size used by the[JavaScriptIsolate](https://developer.android.com/reference/kotlin/androidx/javascriptengine/JavaScriptIsolate).

A setting of[AUTOMATIC_MAX_HEAP_SIZE](https://developer.android.com/reference/kotlin/androidx/javascriptengine/IsolateStartupParameters#AUTOMATIC_MAX_HEAP_SIZE())indicates to automatically chose a limit (which may be device-specific) when the isolate is created. This is the default.

If a value higher than the device-specific maximum heap size limit is supplied, the device's maximum limit will be used as the heap size limit.

The applied limit may not be exact. For example, the limit may internally be rounded up to some multiple of bytes, be increased to some minimum value, or reduced to some maximum supported value.

Exceeding this limit will usually result in all unfinished and future evaluations failing with[MemoryLimitExceededException](https://developer.android.com/reference/kotlin/androidx/javascriptengine/MemoryLimitExceededException)and the isolate terminating with a status of[STATUS_MEMORY_LIMIT_EXCEEDED](https://developer.android.com/reference/kotlin/androidx/javascriptengine/TerminationInfo#STATUS_MEMORY_LIMIT_EXCEEDED()). Note that exceeding the memory limit will take down the entire sandbox - not just the responsible isolate - and all other isolates will receive generic[SandboxDeadException](https://developer.android.com/reference/kotlin/androidx/javascriptengine/SandboxDeadException)and[STATUS_SANDBOX_DEAD](https://developer.android.com/reference/kotlin/androidx/javascriptengine/TerminationInfo#STATUS_SANDBOX_DEAD())errors.

Not all JavaScript sandbox service implementations (particularly older ones) handle memory exhaustion equally, and may crash the sandbox without attributing the failure to memory exhaustion in a particular isolate.  

|                                                                                         Parameters                                                                                         |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `size: @`[IntRange](https://developer.android.com/reference/kotlin/androidx/annotation/IntRange)`(from = 0) `[Long](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html) | [AUTOMATIC_MAX_HEAP_SIZE](https://developer.android.com/reference/kotlin/androidx/javascriptengine/IsolateStartupParameters#AUTOMATIC_MAX_HEAP_SIZE())or a heap size limit in bytes |