Enforce limits on memory usage for JsIsolate

Checked if the JsIsolate supports being memory capped.
If supported, and enforced restrict max memory.

Test: Added test thet check for using the isolate setting to:
- bypass enforcement
- have unbounded memory isloate
- have bounded memory isolate

Bug: 239719630

Change-Id: Ie9dc4dbcf529e54eec912f66b0ad1da637dcae96
diff --git a/apct-tests/perftests/rubidium/src/android/rubidium/js/JSScriptEnginePerfTests.java b/apct-tests/perftests/rubidium/src/android/rubidium/js/JSScriptEnginePerfTests.java
index 81685cb..33b2bea 100644
--- a/apct-tests/perftests/rubidium/src/android/rubidium/js/JSScriptEnginePerfTests.java
+++ b/apct-tests/perftests/rubidium/src/android/rubidium/js/JSScriptEnginePerfTests.java
@@ -37,6 +37,7 @@
 import androidx.test.filters.MediumTest;
 import androidx.test.runner.AndroidJUnit4;
 
+import com.android.adservices.service.js.IsolateSettings;
 import com.android.adservices.service.js.JSScriptArgument;
 import com.android.adservices.service.js.JSScriptArrayArgument;
 import com.android.adservices.service.js.JSScriptEngine;
@@ -314,7 +315,11 @@
             @NonNull CountDownLatch resultLatch) {
         Objects.requireNonNull(engine);
         Objects.requireNonNull(resultLatch);
-        ListenableFuture<String> result = engine.evaluate(jsScript, args, functionName);
+        ListenableFuture<String> result = engine.evaluate(
+                jsScript,
+                args,
+                functionName,
+                IsolateSettings.forMaxHeapSizeEnforcementDisabled());
         result.addListener(resultLatch::countDown, sExecutorService);
         return result;
     }
@@ -328,7 +333,12 @@
             @NonNull CountDownLatch resultLatch) {
         Objects.requireNonNull(engine);
         Objects.requireNonNull(resultLatch);
-        ListenableFuture<String> result = engine.evaluate(jsScript, wasmScript, args, functionName);
+        ListenableFuture<String> result = engine.evaluate(
+                jsScript,
+                wasmScript,
+                args,
+                functionName,
+                IsolateSettings.forMaxHeapSizeEnforcementDisabled());
         result.addListener(resultLatch::countDown, sExecutorService);
         return result;
     }