Converting Rules DSL to JSRule (ecma2021) datatype problems

Hi guys…

actually I’m trying to convert my last Rules DSL rules to JSRules. but sometimes it get’s a little bit hard for me to sort out the problems…

this is one of the rules I’m trying to convert:

rule "TimeOfDay - Write DayStart Time and Set SleepState"
when
	System started or
	Item BedtimeStart changed or
	Item ManualOverride changed
then
	rescheduleTimer?.cancel
	rescheduleTimer = createTimer(now, [ |
		// get values from BedtimeStart for calculation
		val awake = (BedtimeStart.state as DateTimeType).getZonedDateTime().plusDays(1).minusHours(16).minusMinutes(15)
		val asleep = (BedtimeStart.state as DateTimeType).getZonedDateTime().plusMinutes(15)
		val squeezestop = (BedtimeStart.state as DateTimeType).getZonedDateTime().plusDays(1).minusHours(14).minusMinutes(15)
		val DateTimeType asp = new DateTimeType(asleep)
		val DateTimeType awk = new DateTimeType(awake)
		val DateTimeType sqstp = new DateTimeType(squeezestop)
		val bedtime = Bedtime.state

		// send values to Items
		MyDayStart.postUpdate(awk)
		MySleepStart.postUpdate(asp)
		SqueezeStop.postUpdate(sqstp)

		// Calculate the SleepState

		switch true {
			case 	now.isAfter(awake) && bedtime == OFF						 : curr2 =	"AWAKE"
			case	now.isAfter(asleep) && now.isBefore(awake) && bedtime == OFF : curr2 =	"AWAKE"
			case 	now.isAfter(asleep) && now.isBefore(awake) && bedtime == ON  : curr2 =	"ASLEEP"
		}

		if ( SleepState.state.toString != curr2 ) {
			SleepState.sendCommand(curr2)
			logInfo("DayStart", "SleepState = "+curr2)
		}

	rescheduleTimer.reschedule(now.plusMinutes(5))
	])
end

my main problem is that I can’t figure out how to work with zonedDateTime in java.

this is my approach to convert to JSRule:

const {log, rules, triggers, time} = require("openhab");

rules.JSRule({
  name: "ECMA2021Script - Sleep State",
  description: "toggle sleep state when bedtime/daystart changes",
  triggers: [
    triggers.SystemStartlevelTrigger(100),
    triggers.ItemStateChangeTrigger('BedtimeStart'),
    triggers.ItemStateChangeTrigger('ManualOverride')
  ],
  execute: data => {
    const sleepstate = items.getItem("SleepState");
    const bedtimestart = items.getItem("BedtimeStart");
    const mydaystart = items.getItem("MyDayStart");
    const mysleepstart = items.getItem("MySleepStart");
    const squeezestop = items.getItem("SqueezeStop");
    const bedtime = items.getItem("Bedtime");
    const bedtimeStartTime = time.ZonedDateTime.of(
      bedtimestart.year,
      bedtimestart.month,
      bedtimestart.day,
      bedtimestart.hour,
      bedtimestart.minute,
      bedtimestart.second,
      bedtimestart.nano,
      bedtimestart.zone
    );

    // Create ZonedDateTime objects from the number of milliseconds
    var awake = bedtimeStartTime.plus(time.Duration.ofDays(1)).minus(time.Duration.ofHours(16)).minus(time.Duration.ofMinutes(15));
    var asleep = bedtimeStartTime.plus(time.Duration.ofMinutes(15));
    var sqzstop = bedtimeStartTime.plus(time.Duration.ofDays(1)).minus(time.Duration.ofHours(14)).minus(time.Duration.ofMinutes(15));

    var now = time.ZonedDateTime.now();
    var curr = "UNKNOWN";

    mydaystart.postUpdate(awake);
    mysleepstart.postUpdate(asleep);
    squeezestop.postUpdate(sqzstop);

    if ( now.isAfter(awake) && bedtime.state === "OFF" ) {
      curr = "AWAKE";
      console.log("SleepState ",curr);
    }

    if (now.isAfter(asleep) && now.isBefore(awake) && bedtime.state === "OFF") {
      curr = "AWAKE";
      console.log("SleepState ", curr);
    }

    if (now.isAfter(asleep) && now.isBefore(awake) && bedtime.state === "ON") {
      curr = "ASLEEP";
      console.log("SleepState ", curr);
    }

    if (sleepstate.state !== curr) {
      sleepstate.sendCommand(curr);
      console.log("SleepState ", curr);
    }

    // Reschedule timer to run every 5 minutes
    setTimeout((data) => rules.JSRule(data), 300000, data);
  },
  tags: [],
});

I tried to figure out what’s the problem and it seems like I’m having problems telling java to work corectly

with my string items (e.g. bedtimestart) that hold the DateTime data.

this is the error I get from the logs when manually firing the rule via UI:

==> /var/log/openhab/openhab.log <==
2022-12-29 09:37:22.490 [ERROR] [tion.script.file.rules_sleepstate.js] - Failed to execute rule ECMA2021Script---Sleep-State-f2bd3f2b-a45f-4f0e-977e-0de2498f6d96: NullPointerException: year must not be null: NullPointerException: year must not be null
        at JsJodaException (webpack://openhab/./node_modules/@js-joda/core/dist/js-joda.esm.js?:76)
        at requireNonNull (webpack://openhab/./node_modules/@js-joda/core/dist/js-joda.esm.js?:298)
        at LocalDate (webpack://openhab/./node_modules/@js-joda/core/dist/js-joda.esm.js?:11303)
        at of (webpack://openhab/./node_modules/@js-joda/core/dist/js-joda.esm.js?:12008)
        at ofNumbers (webpack://openhab/./node_modules/@js-joda/core/dist/js-joda.esm.js?:12766)
        at of (webpack://openhab/./node_modules/@js-joda/core/dist/js-joda.esm.js?:12756)
        at of8 (webpack://openhab/./node_modules/@js-joda/core/dist/js-joda.esm.js?:10516)
        at of (webpack://openhab/./node_modules/@js-joda/core/dist/js-joda.esm.js?:10500)
        at execute (rules_sleepstate.js:18)

seems like the conversion approach is completely wrong, but I’m a little bit lost, because the more I read about ZDT in java, the more I get confused.

I also tried to replace this definition

const bedtimeStartTime = time.ZonedDateTime.of(
      bedtimestart.year,
      bedtimestart.month,
      bedtimestart.day,
      bedtimestart.hour,
      bedtimestart.minute,
      bedtimestart.second,
      bedtimestart.nano,
      bedtimestart.zone
    );

with

const bedtimeStartTime = time.ZonedDateTime.parse(bedtimestart.state);

but then I get the following error:

2022-12-29 09:48:44.769 [ERROR] [tion.script.file.rules_sleepstate.js] - Failed to execute rule ECMA2021Script---Sleep-State-1ab88ac8-aa36-410c-a92a-32999c0412a2: DateTimeParseException: Text '2022-12-29T01:12:41.206118+0100' could not be parsed at index 26: 2022-12-29T01:12:41.206118+0100, at index: 26: DateTimeParseException: Text '2022-12-29T01:12:41.206118+0100' could not be parsed at index 26: 2022-12-29T01:12:41.206118+0100, at index: 26
        at JsJodaException (webpack://openhab/./node_modules/@js-joda/core/dist/js-joda.esm.js?:76)
        at _parseToBuilder (webpack://openhab/./node_modules/@js-joda/core/dist/js-joda.esm.js?:7742)
        at parse2 (webpack://openhab/./node_modules/@js-joda/core/dist/js-joda.esm.js?:7701)
        at parse (webpack://openhab/./node_modules/@js-joda/core/dist/js-joda.esm.js?:7676)
        at parse (webpack://openhab/./node_modules/@js-joda/core/dist/js-joda.esm.js?:10658)
        at execute (rules_sleepstate.js:18)
        at doExecute (webpack://openhab/./node_modules/openhab/rules/rules.js?:242)

my skills in datatype conversions are very limited I think :wink:

maybe someone can help me understand more what to look out for in plain words?

thanks!

The openhab-js library goes to great lengths to make sure you only ever have to mess with JavaScript classes and objects most of the time. Date times are no exception. The relevant docs are JavaScript Scripting - Automation | openHAB

To achieve this goal, the openhab-js library makes available the joda-js library (a reference to the docs for that are linked to in the docs linked above) which works almost exactly like the Java date time classes. So definitely look at the examples and the reference docs there.

OK, with that out of the way, what does that error mean? It’s saying that bedtimestart.year is null/undefined. So let’s focus on that variable.

You’ve initialized bedtimestart to items.getItem("BedtimeStart"). Looking at the reference docs for items we see that getItem(String) returns an Item Object. An Item doesn’t have a .year, .month, and all the rest because an Item isn’t a ZonedDateTime.

You need to get the state of the Item, same as you do in Rules DSL. However, looking at the reference docs we see that Item.state returns a String, not a DateTimeType. That’s because DateTimeType is a Java Class but a String is JavaScript and there is no JavaScript equivalent to the Item state classes. But you will also see Item has a rawState. This is the original DateTimeType Java Object for that DateTime Item.

Once you have the DateTimeType, the code is basically the same as Rules DSL. Call getZonedDateTime to get the ZonedDateTime Object.

Given all of this, your line to create bedtimeStartTime becomes

const bedtimeStartTime = bedtimestart.rawState.getZonedDateTime();

That’s it. It’s already a ZonedDateTime so you don’t need to create a new one. Just use what you already have. I believe that the add-on will auto-convert to/from the Java ZonedDateTime to the joda-js ZonedDateTime but if not, use toZDT() which will convert it for you.

const bedtimeStartTime = time.toZDT(bedtimestart.rawState.getZonedDateTime());

That should fix this particular error.

Some other other observations:

  • Why use a timer to run every five minutes instead of a cron trigger?

  • Why use a polling rule in the first place? You can use a Time is <item> trigger to trigger a rule based on the state of a DateTime Item. It would be way simpler to break this up into a rule that recalculates the DateTimes when BedtimeStart changes and then create a simple rule for each state that triggers based on the states of the DateTimeItems. It would look something like (note there are some utilities in time that make the calculations easier too):

const {log, rules, triggers, time} = require("openhab");

rules.JSRule({
  name: "ECMA2021Script - Calculate times based on BedtimeStart",
  description: "Updates time of day Items based on BedtimeStart",
  triggers: [
    triggers.SystemStartlevelTrigger(100), // This isn't needed if BedtimeStart and the other Items have restoreOnStartup
    triggers.ItemStateChangeTrigger('BedtimeStart'),
  ],
  execute: data => {
    var bedtimeStartTime = items.getItem('BedtimeStart').rawState.getZonedDateTime();
    var awake = bedtimeStartTime.plus(time.Duration.parse('P1D').minus(time.Duration('PT16H15M'));     
    var asleep = bedtimeStartTime.plus(time.Duration.ofMinutes(15));
    var sqzstop = bedtimeStartTime.plus(time.Duration.ofDays(1)).minus(time.Duration.parse('PT14H15M'));

    items.getItem('MyDayStart`).postUpdate(awake.toLocalDateTime().toString()); // there was a problem with posting an update from a Joda ZonedDateTime, this is guaranteed to work
    items.getItem('MySleepStart').postUpdate(asleep.toLocalDateTime().toString());
    items.getItem(`SqueezeStop`).postUpdate(sqzstop.toLocalDateTime().toString());
  },
  tags: [],
});

rules.JSRule({
  name: "ECMA2021Script - Awake Time",
  description: "Updates sleep state to AWAKE",
  triggers: [
    triggers.DateTimeTrigger('MyDayStart')
  ],
  execute: data => {
    items.getItem("SleepState").sendCommand("AWAKE");
    console.log("SleepState ", curr);
  },
  tags: [],
});

rules.JSRule({
  name: "ECMA2021Script - ASLEEP",
  description: "Updates sleep state to ASLEEP",
  triggers: [
    triggers.DateTimeTrigger('MySleepStart'),
    triggers.ItemStateChangedTrigger('Bedtime')
  ],
  execute: data => {
    const bedtime = items.getItem('Bedtime').state
    const sleepStart = items.getItem('MySleepStart').rawState.getZonedDateTime();
    const sleepState = (bedtime == "ON" && time.toZDT().isAfter(sleepStart)) ? "ASLEEP" : "AWAKE";
    items.getItem("SleepState").sendCommand(sleepState);
    console.log("SleepState ", sleepState);
  },
  tags: [],
});

No timers. No complex conditions or conversions.

1 Like

thanks for that I think I have to read it again… it was very confusing I didn’t understand all this java time & joda js stuff at my first look :wink:

yes this was my fourth approach I changed and tried so much to get it running without help… as I mentioned I guessed that this approach was totally wrong.

thanks I worked with rawState before in other cases, but wasn’t aware that it makes a difference in that case - but now it makes sense that my approach with state wouldn’t have worked, because of the wrong datatype. Sometimes it’s a bit overwhelming to keep everything in mind if you’re just a hobby-coder :wink:

whoooh… I have to think about that… actually my approach was to convert my rules without the focus on improvements but I definately have a look at your suggestion to split this up.

thanks for this very good explanation where my problem / misunderstanding was based on. I honestly appreciate your help, thanks a ton!! :slight_smile:

I’ll try your tips and give an update after I tested them…

1 Like

while leaving everything else untouched I get these errors

==> /var/log/openhab/openhab.log <==
2022-12-29 22:54:17.664 [ERROR] [tion.script.file.rules_sleepstate.js] - Failed to execute rule ECMA2021Script---Sleep-State-43d309cb-eb2e-48fc-bbd7-44b47c27250a: java.lang.UnsupportedOperationException: Unsupported operation identifier 'toFullString' and  object '[object Object]'(language: JavaScript, type: ZonedDateTime). Identifier is not executable or instantiable.
2022-12-29 22:54:17.665 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule 'ECMA2021Script---Sleep-State-43d309cb-eb2e-48fc-bbd7-44b47c27250a': Fail to execute action: 1

seems like toZDT is not working in this case and produces another datatype error?!?

==> /var/log/openhab/openhab.log <==
2022-12-29 22:58:59.354 [ERROR] [tion.script.file.rules_sleepstate.js] - Failed to execute rule ECMA2021Script---Sleep-State-36266e38-68a4-404e-9d2b-530e4baf4ee6: RangeError: Maximum call stack size exceeded: RangeError: Maximum call stack size exceeded
        at addTo (webpack://openhab/./node_modules/@js-joda/core/dist/js-joda.esm.js?:1317)
        at addTo (webpack://openhab/./node_modules/@js-joda/core/dist/js-joda.esm.js?:1318)
        at addTo (webpack://openhab/./node_modules/@js-joda/core/dist/js-joda.esm.js?:1318)
        at addTo (webpack://openhab/./node_modules/@js-joda/core/dist/js-joda.esm.js?:1318)
        at addTo (webpack://openhab/./node_modules/@js-joda/core/dist/js-joda.esm.js?:1318)
        at addTo (webpack://openhab/./node_modules/@js-joda/core/dist/js-joda.esm.js?:1318)
        at addTo (webpack://openhab/./node_modules/@js-joda/core/dist/js-joda.esm.js?:1318)
        at addTo (webpack://openhab/./node_modules/@js-joda/core/dist/js-joda.esm.js?:1318)
        at addTo (webpack://openhab/./node_modules/@js-joda/core/dist/js-joda.esm.js?:1318)
        at addTo (webpack://openhab/./node_modules/@js-joda/core/dist/js-joda.esm.js?:1318)
2022-12-29 22:58:59.356 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule 'ECMA2021Script---Sleep-State-36266e38-68a4-404e-9d2b-530e4baf4ee6': Fail to execute action: 1

an this seems to be a joda-js conversion problem?? I’m sorry just guessing :wink:

What version of OH are you running?

Have you ever installed openhab-js by hand or are you using the version that comes with the add-on?

That’s something different. It may not even have anything to do with this code itself. You’d usually see this kind of error if you have a recursion run amok. That should be possible here, we don’t have a recursion.

Try restarting OH to get a clean slate and try it again.

If the problem persists, add logging to narrow it down to which line it’s failing on.

1 Like

just updated to 3.4.0.1 stable (debian)

I have some old jsr223 (jython) stuff installed… but the js addon is installed via UI

Ok we’ll see… thanks!

after restarting and firing the rule via ManualOverride item change, at the first time the log is going nuts:

==> /var/log/openhab/openhab.log <==
2022-12-29 23:24:57.854 [ERROR] [Events.Framework                    ] - FrameworkEvent ERROR
java.lang.StackOverflowError: null
        at org.objectweb.asm.SymbolTable.addConstantUtf8(SymbolTable.java:774) ~[?:?]
        at org.objectweb.asm.MethodWriter.<init>(MethodWriter.java:598) ~[?:?]
        at org.objectweb.asm.ClassWriter.visitMethod(ClassWriter.java:446) ~[?:?]
        at org.objectweb.asm.ClassVisitor.visitMethod(ClassVisitor.java:366) ~[?:?]
        at org.apache.aries.spifly.weaver.TCCLSetterVisitor.visitMethod(TCCLSetterVisitor.java:79) ~[?:?]
        at org.objectweb.asm.ClassReader.readMethod(ClassReader.java:1353) ~[?:?]
        at org.objectweb.asm.ClassReader.accept(ClassReader.java:744) ~[?:?]
        at org.objectweb.asm.ClassReader.accept(ClassReader.java:424) ~[?:?]
        at org.apache.aries.spifly.dynamic.ClientWeavingHook.weave(ClientWeavingHook.java:60) ~[?:?]
        at org.eclipse.osgi.internal.weaving.WovenClassImpl.call(WovenClassImpl.java:187) ~[org.eclipse.osgi-3.17.200.jar:?]
        at org.eclipse.osgi.internal.weaving.WovenClassImpl.call(WovenClassImpl.java:1) ~[org.eclipse.osgi-3.17.200.jar:?]
        at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.notifyHookPrivileged(ServiceRegistry.java:1332) ~[org.eclipse.osgi-3.17.200.jar:?]
        at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.notifyHooksPrivileged(ServiceRegistry.java:1305) ~[org.eclipse.osgi-3.17.200.jar:?]
        at org.eclipse.osgi.internal.weaving.WovenClassImpl.callHooks(WovenClassImpl.java:249) ~[org.eclipse.osgi-3.17.200.jar:?]
        at org.eclipse.osgi.internal.weaving.WeavingHookConfigurator.processClass(WeavingHookConfigurator.java:80) ~[org.eclipse.osgi-3.17.200.jar:?]
        at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.processClass(ClasspathManager.java:735) ~[org.eclipse.osgi-3.17.200.jar:?]
        at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.defineClass(ClasspathManager.java:706) ~[org.eclipse.osgi-3.17.200.jar:?]
        at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findClassImpl(ClasspathManager.java:639) ~[org.eclipse.osgi-3.17.200.jar:?]
        at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClassImpl(ClasspathManager.java:607) ~[org.eclipse.osgi-3.17.200.jar:?]
        at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClassImpl(ClasspathManager.java:587) ~[org.eclipse.osgi-3.17.200.jar:?]
        at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:566) ~[org.eclipse.osgi-3.17.200.jar:?]
        at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:335) ~[org.eclipse.osgi-3.17.200.jar:?]
        at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:397) ~[org.eclipse.osgi-3.17.200.jar:?]
        at org.eclipse.osgi.internal.loader.BundleLoader.findClass0(BundleLoader.java:488) ~[org.eclipse.osgi-3.17.200.jar:?]
        at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:416) ~[org.eclipse.osgi-3.17.200.jar:?]
        at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:168) ~[org.eclipse.osgi-3.17.200.jar:?]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:522) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException(PolyglotImpl.java:642) ~[?:?]
        at com.oracle.truffle.polyglot.HostToGuestRootNode.handleException(HostToGuestRootNode.java:147) ~[?:?]
        at com.oracle.truffle.polyglot.HostToGuestRootNode.execute(HostToGuestRootNode.java:129) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.call(DefaultCallTarget.java:102) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler.invoke(PolyglotObjectProxyHandler.java:103) ~[?:?]
        at com.sun.proxy.$Proxy2504.addTo(Unknown Source) ~[?:?]
        at java.time.ZonedDateTime.plus(ZonedDateTime.java:1608) ~[?:?]
        at com.oracle.truffle.host.HostMethodDesc$SingleMethod$MHBase.invokeHandle(HostMethodDesc.java:331) ~[?:?]
        at com.oracle.truffle.host.GuestToHostCodeCache$1.executeImpl(GuestToHostCodeCache.java:96) ~[?:?]
        at com.oracle.truffle.host.GuestToHostRootNode.execute(GuestToHostRootNode.java:80) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultRuntimeAccessor$DefaultRuntimeSupport.callInlined(DefaultRuntimeAccessor.java:160) ~[?:?]
        at com.oracle.truffle.host.GuestToHostRootNode.guestToHostCall(GuestToHostRootNode.java:102) ~[?:?]
        at com.oracle.truffle.host.HostMethodDesc$SingleMethod$MHBase.invokeGuestToHost(HostMethodDesc.java:362) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNode.doInvoke(HostExecuteNode.java:871) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNode.doOverloadedCached(HostExecuteNode.java:288) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNodeGen.execute(HostExecuteNodeGen.java:85) ~[?:?]
        at com.oracle.truffle.host.HostObject.invokeMember(HostObject.java:451) ~[?:?]
        at com.oracle.truffle.host.HostObjectGen$InteropLibraryExports$Cached.invokeMember(HostObjectGen.java:2674) ~[?:?]
        at com.oracle.truffle.api.interop.InteropLibraryGen$CachedDispatch.invokeMember(InteropLibraryGen.java:8134) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$ForeignInvokeNode.executeCall(JSFunctionCallNode.java:1496) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeCall(JSFunctionCallNode.java:244) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$InvokeNode.execute(JSFunctionCallNode.java:732) ~[?:?]
        at com.oracle.truffle.js.nodes.control.ReturnNode$TerminalPositionReturnNode.execute(ReturnNode.java:165) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeGeneric(AbstractBlockNode.java:85) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeGeneric(AbstractBlockNode.java:55) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultBlockNode.executeGeneric(DefaultBlockNode.java:65) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.execute(AbstractBlockNode.java:75) ~[?:?]
        at com.oracle.truffle.js.nodes.function.FunctionBodyNode.execute(FunctionBodyNode.java:73) ~[?:?]
        at com.oracle.truffle.js.nodes.function.FunctionRootNode.executeInRealm(FunctionRootNode.java:143) ~[?:?]
        at com.oracle.truffle.js.runtime.JavaScriptRealmBoundaryRootNode.execute(JavaScriptRealmBoundaryRootNode.java:92) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultDirectCallNode.call(DefaultDirectCallNode.java:59) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$UnboundJSFunctionCacheNode.executeCall(JSFunctionCallNode.java:1277) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeCall(JSFunctionCallNode.java:244) ~[?:?]
        at com.oracle.truffle.js.nodes.interop.JSInteropInvokeNode.doCached(JSInteropInvokeNode.java:80) ~[?:?]
        at com.oracle.truffle.js.nodes.interop.JSInteropInvokeNodeGen.execute(JSInteropInvokeNodeGen.java:46) ~[?:?]
        at com.oracle.truffle.js.runtime.objects.JSObject.invokeMember(JSObject.java:241) ~[?:?]
        at com.oracle.truffle.js.runtime.objects.JSObjectGen$InteropLibraryExports$Cached.invokeMember(JSObjectGen.java:400) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ProxyInvokeNode.invokeOrExecute(PolyglotObjectProxyHandler.java:231) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ProxyInvokeNode.doCachedMethod(PolyglotObjectProxyHandler.java:206) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandlerFactory$ProxyInvokeNodeGen.execute(PolyglotObjectProxyHandlerFactory.java:49) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ObjectProxyNode.executeImpl(PolyglotObjectProxyHandler.java:148) ~[?:?]
        at com.oracle.truffle.polyglot.HostToGuestRootNode.execute(HostToGuestRootNode.java:125) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.call(DefaultCallTarget.java:102) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler.invoke(PolyglotObjectProxyHandler.java:103) ~[?:?]
        at com.sun.proxy.$Proxy2504.addTo(Unknown Source) ~[?:?]
        at java.time.ZonedDateTime.plus(ZonedDateTime.java:1608) ~[?:?]
        at com.oracle.truffle.host.HostMethodDesc$SingleMethod$MHBase.invokeHandle(HostMethodDesc.java:331) ~[?:?]
        at com.oracle.truffle.host.GuestToHostCodeCache$1.executeImpl(GuestToHostCodeCache.java:96) ~[?:?]
        at com.oracle.truffle.host.GuestToHostRootNode.execute(GuestToHostRootNode.java:80) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultRuntimeAccessor$DefaultRuntimeSupport.callInlined(DefaultRuntimeAccessor.java:160) ~[?:?]
        at com.oracle.truffle.host.GuestToHostRootNode.guestToHostCall(GuestToHostRootNode.java:102) ~[?:?]
        at com.oracle.truffle.host.HostMethodDesc$SingleMethod$MHBase.invokeGuestToHost(HostMethodDesc.java:362) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNode.doInvoke(HostExecuteNode.java:871) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNode.doOverloadedCached(HostExecuteNode.java:288) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNodeGen.execute(HostExecuteNodeGen.java:85) ~[?:?]
        at com.oracle.truffle.host.HostObject.invokeMember(HostObject.java:451) ~[?:?]
        at com.oracle.truffle.host.HostObjectGen$InteropLibraryExports$Cached.invokeMember(HostObjectGen.java:2674) ~[?:?]
        at com.oracle.truffle.api.interop.InteropLibraryGen$CachedDispatch.invokeMember(InteropLibraryGen.java:8134) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$ForeignInvokeNode.executeCall(JSFunctionCallNode.java:1496) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeCall(JSFunctionCallNode.java:244) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$InvokeNode.execute(JSFunctionCallNode.java:732) ~[?:?]
        at com.oracle.truffle.js.nodes.control.ReturnNode$TerminalPositionReturnNode.execute(ReturnNode.java:165) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeGeneric(AbstractBlockNode.java:85) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeGeneric(AbstractBlockNode.java:55) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultBlockNode.executeGeneric(DefaultBlockNode.java:65) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.execute(AbstractBlockNode.java:75) ~[?:?]
        at com.oracle.truffle.js.nodes.function.FunctionBodyNode.execute(FunctionBodyNode.java:73) ~[?:?]
        at com.oracle.truffle.js.nodes.function.FunctionRootNode.executeInRealm(FunctionRootNode.java:143) ~[?:?]
        at com.oracle.truffle.js.runtime.JavaScriptRealmBoundaryRootNode.execute(JavaScriptRealmBoundaryRootNode.java:92) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultDirectCallNode.call(DefaultDirectCallNode.java:59) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$UnboundJSFunctionCacheNode.executeCall(JSFunctionCallNode.java:1277) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeCall(JSFunctionCallNode.java:244) ~[?:?]
        at com.oracle.truffle.js.nodes.interop.JSInteropInvokeNode.doCached(JSInteropInvokeNode.java:80) ~[?:?]
        at com.oracle.truffle.js.nodes.interop.JSInteropInvokeNodeGen.execute(JSInteropInvokeNodeGen.java:46) ~[?:?]
        at com.oracle.truffle.js.runtime.objects.JSObject.invokeMember(JSObject.java:241) ~[?:?]
        at com.oracle.truffle.js.runtime.objects.JSObjectGen$InteropLibraryExports$Cached.invokeMember(JSObjectGen.java:400) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ProxyInvokeNode.invokeOrExecute(PolyglotObjectProxyHandler.java:231) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ProxyInvokeNode.doCachedMethod(PolyglotObjectProxyHandler.java:206) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandlerFactory$ProxyInvokeNodeGen.execute(PolyglotObjectProxyHandlerFactory.java:49) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ObjectProxyNode.executeImpl(PolyglotObjectProxyHandler.java:148) ~[?:?]
        at com.oracle.truffle.polyglot.HostToGuestRootNode.execute(HostToGuestRootNode.java:125) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.call(DefaultCallTarget.java:102) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler.invoke(PolyglotObjectProxyHandler.java:103) ~[?:?]
        at com.sun.proxy.$Proxy2504.addTo(Unknown Source) ~[?:?]
        at java.time.ZonedDateTime.plus(ZonedDateTime.java:1608) ~[?:?]
        at com.oracle.truffle.host.HostMethodDesc$SingleMethod$MHBase.invokeHandle(HostMethodDesc.java:331) ~[?:?]
        at com.oracle.truffle.host.GuestToHostCodeCache$1.executeImpl(GuestToHostCodeCache.java:96) ~[?:?]
        at com.oracle.truffle.host.GuestToHostRootNode.execute(GuestToHostRootNode.java:80) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultRuntimeAccessor$DefaultRuntimeSupport.callInlined(DefaultRuntimeAccessor.java:160) ~[?:?]
        at com.oracle.truffle.host.GuestToHostRootNode.guestToHostCall(GuestToHostRootNode.java:102) ~[?:?]
        at com.oracle.truffle.host.HostMethodDesc$SingleMethod$MHBase.invokeGuestToHost(HostMethodDesc.java:362) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNode.doInvoke(HostExecuteNode.java:871) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNode.doOverloadedCached(HostExecuteNode.java:288) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNodeGen.execute(HostExecuteNodeGen.java:85) ~[?:?]
        at com.oracle.truffle.host.HostObject.invokeMember(HostObject.java:451) ~[?:?]
        at com.oracle.truffle.host.HostObjectGen$InteropLibraryExports$Cached.invokeMember(HostObjectGen.java:2674) ~[?:?]
        at com.oracle.truffle.api.interop.InteropLibraryGen$CachedDispatch.invokeMember(InteropLibraryGen.java:8134) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$ForeignInvokeNode.executeCall(JSFunctionCallNode.java:1496) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeCall(JSFunctionCallNode.java:244) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$InvokeNode.execute(JSFunctionCallNode.java:732) ~[?:?]
        at com.oracle.truffle.js.nodes.control.ReturnNode$TerminalPositionReturnNode.execute(ReturnNode.java:165) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeGeneric(AbstractBlockNode.java:85) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeGeneric(AbstractBlockNode.java:55) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultBlockNode.executeGeneric(DefaultBlockNode.java:65) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.execute(AbstractBlockNode.java:75) ~[?:?]
        at com.oracle.truffle.js.nodes.function.FunctionBodyNode.execute(FunctionBodyNode.java:73) ~[?:?]
        at com.oracle.truffle.js.nodes.function.FunctionRootNode.executeInRealm(FunctionRootNode.java:143) ~[?:?]
        at com.oracle.truffle.js.runtime.JavaScriptRealmBoundaryRootNode.execute(JavaScriptRealmBoundaryRootNode.java:92) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultDirectCallNode.call(DefaultDirectCallNode.java:59) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$UnboundJSFunctionCacheNode.executeCall(JSFunctionCallNode.java:1277) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeCall(JSFunctionCallNode.java:244) ~[?:?]
        at com.oracle.truffle.js.nodes.interop.JSInteropInvokeNode.doCached(JSInteropInvokeNode.java:80) ~[?:?]
        at com.oracle.truffle.js.nodes.interop.JSInteropInvokeNodeGen.execute(JSInteropInvokeNodeGen.java:46) ~[?:?]
        at com.oracle.truffle.js.runtime.objects.JSObject.invokeMember(JSObject.java:241) ~[?:?]
        at com.oracle.truffle.js.runtime.objects.JSObjectGen$InteropLibraryExports$Cached.invokeMember(JSObjectGen.java:400) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ProxyInvokeNode.invokeOrExecute(PolyglotObjectProxyHandler.java:231) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ProxyInvokeNode.doCachedMethod(PolyglotObjectProxyHandler.java:206) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandlerFactory$ProxyInvokeNodeGen.execute(PolyglotObjectProxyHandlerFactory.java:49) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ObjectProxyNode.executeImpl(PolyglotObjectProxyHandler.java:148) ~[?:?]
        at com.oracle.truffle.polyglot.HostToGuestRootNode.execute(HostToGuestRootNode.java:125) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.call(DefaultCallTarget.java:102) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler.invoke(PolyglotObjectProxyHandler.java:103) ~[?:?]
        at com.sun.proxy.$Proxy2504.addTo(Unknown Source) ~[?:?]
        at java.time.ZonedDateTime.plus(ZonedDateTime.java:1608) ~[?:?]
        at com.oracle.truffle.host.HostMethodDesc$SingleMethod$MHBase.invokeHandle(HostMethodDesc.java:331) ~[?:?]
        at com.oracle.truffle.host.GuestToHostCodeCache$1.executeImpl(GuestToHostCodeCache.java:96) ~[?:?]
        at com.oracle.truffle.host.GuestToHostRootNode.execute(GuestToHostRootNode.java:80) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultRuntimeAccessor$DefaultRuntimeSupport.callInlined(DefaultRuntimeAccessor.java:160) ~[?:?]
        at com.oracle.truffle.host.GuestToHostRootNode.guestToHostCall(GuestToHostRootNode.java:102) ~[?:?]
        at com.oracle.truffle.host.HostMethodDesc$SingleMethod$MHBase.invokeGuestToHost(HostMethodDesc.java:362) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNode.doInvoke(HostExecuteNode.java:871) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNode.doOverloadedCached(HostExecuteNode.java:288) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNodeGen.execute(HostExecuteNodeGen.java:85) ~[?:?]
        at com.oracle.truffle.host.HostObject.invokeMember(HostObject.java:451) ~[?:?]
        at com.oracle.truffle.host.HostObjectGen$InteropLibraryExports$Cached.invokeMember(HostObjectGen.java:2674) ~[?:?]
        at com.oracle.truffle.api.interop.InteropLibraryGen$CachedDispatch.invokeMember(InteropLibraryGen.java:8134) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$ForeignInvokeNode.executeCall(JSFunctionCallNode.java:1496) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeCall(JSFunctionCallNode.java:244) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$InvokeNode.execute(JSFunctionCallNode.java:732) ~[?:?]
        at com.oracle.truffle.js.nodes.control.ReturnNode$TerminalPositionReturnNode.execute(ReturnNode.java:165) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeGeneric(AbstractBlockNode.java:85) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeGeneric(AbstractBlockNode.java:55) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultBlockNode.executeGeneric(DefaultBlockNode.java:65) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.execute(AbstractBlockNode.java:75) ~[?:?]
        at com.oracle.truffle.js.nodes.function.FunctionBodyNode.execute(FunctionBodyNode.java:73) ~[?:?]
        at com.oracle.truffle.js.nodes.function.FunctionRootNode.executeInRealm(FunctionRootNode.java:143) ~[?:?]
        at com.oracle.truffle.js.runtime.JavaScriptRealmBoundaryRootNode.execute(JavaScriptRealmBoundaryRootNode.java:92) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultDirectCallNode.call(DefaultDirectCallNode.java:59) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$UnboundJSFunctionCacheNode.executeCall(JSFunctionCallNode.java:1277) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeCall(JSFunctionCallNode.java:244) ~[?:?]
        at com.oracle.truffle.js.nodes.interop.JSInteropInvokeNode.doCached(JSInteropInvokeNode.java:80) ~[?:?]
        at com.oracle.truffle.js.nodes.interop.JSInteropInvokeNodeGen.execute(JSInteropInvokeNodeGen.java:46) ~[?:?]
        at com.oracle.truffle.js.runtime.objects.JSObject.invokeMember(JSObject.java:241) ~[?:?]
        at com.oracle.truffle.js.runtime.objects.JSObjectGen$InteropLibraryExports$Cached.invokeMember(JSObjectGen.java:400) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ProxyInvokeNode.invokeOrExecute(PolyglotObjectProxyHandler.java:231) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ProxyInvokeNode.doCachedMethod(PolyglotObjectProxyHandler.java:206) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandlerFactory$ProxyInvokeNodeGen.execute(PolyglotObjectProxyHandlerFactory.java:49) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ObjectProxyNode.executeImpl(PolyglotObjectProxyHandler.java:148) ~[?:?]
        at com.oracle.truffle.polyglot.HostToGuestRootNode.execute(HostToGuestRootNode.java:125) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.call(DefaultCallTarget.java:102) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler.invoke(PolyglotObjectProxyHandler.java:103) ~[?:?]
        at com.sun.proxy.$Proxy2504.addTo(Unknown Source) ~[?:?]
        at java.time.ZonedDateTime.plus(ZonedDateTime.java:1608) ~[?:?]
        at com.oracle.truffle.host.HostMethodDesc$SingleMethod$MHBase.invokeHandle(HostMethodDesc.java:331) ~[?:?]
        at com.oracle.truffle.host.GuestToHostCodeCache$1.executeImpl(GuestToHostCodeCache.java:96) ~[?:?]
        at com.oracle.truffle.host.GuestToHostRootNode.execute(GuestToHostRootNode.java:80) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultRuntimeAccessor$DefaultRuntimeSupport.callInlined(DefaultRuntimeAccessor.java:160) ~[?:?]
        at com.oracle.truffle.host.GuestToHostRootNode.guestToHostCall(GuestToHostRootNode.java:102) ~[?:?]
        at com.oracle.truffle.host.HostMethodDesc$SingleMethod$MHBase.invokeGuestToHost(HostMethodDesc.java:362) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNode.doInvoke(HostExecuteNode.java:871) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNode.doOverloadedCached(HostExecuteNode.java:288) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNodeGen.execute(HostExecuteNodeGen.java:85) ~[?:?]
        at com.oracle.truffle.host.HostObject.invokeMember(HostObject.java:451) ~[?:?]
        at com.oracle.truffle.host.HostObjectGen$InteropLibraryExports$Cached.invokeMember(HostObjectGen.java:2674) ~[?:?]
        at com.oracle.truffle.api.interop.InteropLibraryGen$CachedDispatch.invokeMember(InteropLibraryGen.java:8134) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$ForeignInvokeNode.executeCall(JSFunctionCallNode.java:1496) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeCall(JSFunctionCallNode.java:244) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$InvokeNode.execute(JSFunctionCallNode.java:732) ~[?:?]
        at com.oracle.truffle.js.nodes.control.ReturnNode$TerminalPositionReturnNode.execute(ReturnNode.java:165) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeGeneric(AbstractBlockNode.java:85) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeGeneric(AbstractBlockNode.java:55) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultBlockNode.executeGeneric(DefaultBlockNode.java:65) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.execute(AbstractBlockNode.java:75) ~[?:?]
        at com.oracle.truffle.js.nodes.function.FunctionBodyNode.execute(FunctionBodyNode.java:73) ~[?:?]
        at com.oracle.truffle.js.nodes.function.FunctionRootNode.executeInRealm(FunctionRootNode.java:143) ~[?:?]
        at com.oracle.truffle.js.runtime.JavaScriptRealmBoundaryRootNode.execute(JavaScriptRealmBoundaryRootNode.java:92) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultDirectCallNode.call(DefaultDirectCallNode.java:59) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$UnboundJSFunctionCacheNode.executeCall(JSFunctionCallNode.java:1277) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeCall(JSFunctionCallNode.java:244) ~[?:?]
        at com.oracle.truffle.js.nodes.interop.JSInteropInvokeNode.doCached(JSInteropInvokeNode.java:80) ~[?:?]
        at com.oracle.truffle.js.nodes.interop.JSInteropInvokeNodeGen.execute(JSInteropInvokeNodeGen.java:46) ~[?:?]
        at com.oracle.truffle.js.runtime.objects.JSObject.invokeMember(JSObject.java:241) ~[?:?]
        at com.oracle.truffle.js.runtime.objects.JSObjectGen$InteropLibraryExports$Cached.invokeMember(JSObjectGen.java:400) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ProxyInvokeNode.invokeOrExecute(PolyglotObjectProxyHandler.java:231) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ProxyInvokeNode.doCachedMethod(PolyglotObjectProxyHandler.java:206) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandlerFactory$ProxyInvokeNodeGen.execute(PolyglotObjectProxyHandlerFactory.java:49) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ObjectProxyNode.executeImpl(PolyglotObjectProxyHandler.java:148) ~[?:?]
        at com.oracle.truffle.polyglot.HostToGuestRootNode.execute(HostToGuestRootNode.java:125) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.call(DefaultCallTarget.java:102) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler.invoke(PolyglotObjectProxyHandler.java:103) ~[?:?]
        at com.sun.proxy.$Proxy2504.addTo(Unknown Source) ~[?:?]
        at java.time.ZonedDateTime.plus(ZonedDateTime.java:1608) ~[?:?]
        at com.oracle.truffle.host.HostMethodDesc$SingleMethod$MHBase.invokeHandle(HostMethodDesc.java:331) ~[?:?]
        at com.oracle.truffle.host.GuestToHostCodeCache$1.executeImpl(GuestToHostCodeCache.java:96) ~[?:?]
        at com.oracle.truffle.host.GuestToHostRootNode.execute(GuestToHostRootNode.java:80) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultRuntimeAccessor$DefaultRuntimeSupport.callInlined(DefaultRuntimeAccessor.java:160) ~[?:?]
        at com.oracle.truffle.host.GuestToHostRootNode.guestToHostCall(GuestToHostRootNode.java:102) ~[?:?]
        at com.oracle.truffle.host.HostMethodDesc$SingleMethod$MHBase.invokeGuestToHost(HostMethodDesc.java:362) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNode.doInvoke(HostExecuteNode.java:871) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNode.doOverloadedCached(HostExecuteNode.java:288) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNodeGen.execute(HostExecuteNodeGen.java:85) ~[?:?]
        at com.oracle.truffle.host.HostObject.invokeMember(HostObject.java:451) ~[?:?]
        at com.oracle.truffle.host.HostObjectGen$InteropLibraryExports$Cached.invokeMember(HostObjectGen.java:2674) ~[?:?]
        at com.oracle.truffle.api.interop.InteropLibraryGen$CachedDispatch.invokeMember(InteropLibraryGen.java:8134) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$ForeignInvokeNode.executeCall(JSFunctionCallNode.java:1496) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeCall(JSFunctionCallNode.java:244) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$InvokeNode.execute(JSFunctionCallNode.java:732) ~[?:?]
        at com.oracle.truffle.js.nodes.control.ReturnNode$TerminalPositionReturnNode.execute(ReturnNode.java:165) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeGeneric(AbstractBlockNode.java:85) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeGeneric(AbstractBlockNode.java:55) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultBlockNode.executeGeneric(DefaultBlockNode.java:65) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.execute(AbstractBlockNode.java:75) ~[?:?]
        at com.oracle.truffle.js.nodes.function.FunctionBodyNode.execute(FunctionBodyNode.java:73) ~[?:?]
        at com.oracle.truffle.js.nodes.function.FunctionRootNode.executeInRealm(FunctionRootNode.java:143) ~[?:?]
        at com.oracle.truffle.js.runtime.JavaScriptRealmBoundaryRootNode.execute(JavaScriptRealmBoundaryRootNode.java:92) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultDirectCallNode.call(DefaultDirectCallNode.java:59) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$UnboundJSFunctionCacheNode.executeCall(JSFunctionCallNode.java:1277) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeCall(JSFunctionCallNode.java:244) ~[?:?]
        at com.oracle.truffle.js.nodes.interop.JSInteropInvokeNode.doCached(JSInteropInvokeNode.java:80) ~[?:?]
        at com.oracle.truffle.js.nodes.interop.JSInteropInvokeNodeGen.execute(JSInteropInvokeNodeGen.java:46) ~[?:?]
        at com.oracle.truffle.js.runtime.objects.JSObject.invokeMember(JSObject.java:241) ~[?:?]
        at com.oracle.truffle.js.runtime.objects.JSObjectGen$InteropLibraryExports$Cached.invokeMember(JSObjectGen.java:400) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ProxyInvokeNode.invokeOrExecute(PolyglotObjectProxyHandler.java:231) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ProxyInvokeNode.doCachedMethod(PolyglotObjectProxyHandler.java:206) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandlerFactory$ProxyInvokeNodeGen.execute(PolyglotObjectProxyHandlerFactory.java:49) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ObjectProxyNode.executeImpl(PolyglotObjectProxyHandler.java:148) ~[?:?]
        at com.oracle.truffle.polyglot.HostToGuestRootNode.execute(HostToGuestRootNode.java:125) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.call(DefaultCallTarget.java:102) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler.invoke(PolyglotObjectProxyHandler.java:103) ~[?:?]
        at com.sun.proxy.$Proxy2504.addTo(Unknown Source) ~[?:?]
        at java.time.ZonedDateTime.plus(ZonedDateTime.java:1608) ~[?:?]
        at com.oracle.truffle.host.HostMethodDesc$SingleMethod$MHBase.invokeHandle(HostMethodDesc.java:331) ~[?:?]
        at com.oracle.truffle.host.GuestToHostCodeCache$1.executeImpl(GuestToHostCodeCache.java:96) ~[?:?]
        at com.oracle.truffle.host.GuestToHostRootNode.execute(GuestToHostRootNode.java:80) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultRuntimeAccessor$DefaultRuntimeSupport.callInlined(DefaultRuntimeAccessor.java:160) ~[?:?]
        at com.oracle.truffle.host.GuestToHostRootNode.guestToHostCall(GuestToHostRootNode.java:102) ~[?:?]
        at com.oracle.truffle.host.HostMethodDesc$SingleMethod$MHBase.invokeGuestToHost(HostMethodDesc.java:362) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNode.doInvoke(HostExecuteNode.java:871) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNode.doOverloadedCached(HostExecuteNode.java:288) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNodeGen.execute(HostExecuteNodeGen.java:85) ~[?:?]
        at com.oracle.truffle.host.HostObject.invokeMember(HostObject.java:451) ~[?:?]
        at com.oracle.truffle.host.HostObjectGen$InteropLibraryExports$Cached.invokeMember(HostObjectGen.java:2674) ~[?:?]
        at com.oracle.truffle.api.interop.InteropLibraryGen$CachedDispatch.invokeMember(InteropLibraryGen.java:8134) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$ForeignInvokeNode.executeCall(JSFunctionCallNode.java:1496) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeCall(JSFunctionCallNode.java:244) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$InvokeNode.execute(JSFunctionCallNode.java:732) ~[?:?]
        at com.oracle.truffle.js.nodes.control.ReturnNode$TerminalPositionReturnNode.execute(ReturnNode.java:165) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeGeneric(AbstractBlockNode.java:85) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeGeneric(AbstractBlockNode.java:55) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultBlockNode.executeGeneric(DefaultBlockNode.java:65) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.execute(AbstractBlockNode.java:75) ~[?:?]
        at com.oracle.truffle.js.nodes.function.FunctionBodyNode.execute(FunctionBodyNode.java:73) ~[?:?]
        at com.oracle.truffle.js.nodes.function.FunctionRootNode.executeInRealm(FunctionRootNode.java:143) ~[?:?]
        at com.oracle.truffle.js.runtime.JavaScriptRealmBoundaryRootNode.execute(JavaScriptRealmBoundaryRootNode.java:92) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultDirectCallNode.call(DefaultDirectCallNode.java:59) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$UnboundJSFunctionCacheNode.executeCall(JSFunctionCallNode.java:1277) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeCall(JSFunctionCallNode.java:244) ~[?:?]
        at com.oracle.truffle.js.nodes.interop.JSInteropInvokeNode.doCached(JSInteropInvokeNode.java:80) ~[?:?]
        at com.oracle.truffle.js.nodes.interop.JSInteropInvokeNodeGen.execute(JSInteropInvokeNodeGen.java:46) ~[?:?]
        at com.oracle.truffle.js.runtime.objects.JSObject.invokeMember(JSObject.java:241) ~[?:?]
        at com.oracle.truffle.js.runtime.objects.JSObjectGen$InteropLibraryExports$Cached.invokeMember(JSObjectGen.java:400) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ProxyInvokeNode.invokeOrExecute(PolyglotObjectProxyHandler.java:231) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ProxyInvokeNode.doCachedMethod(PolyglotObjectProxyHandler.java:206) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandlerFactory$ProxyInvokeNodeGen.execute(PolyglotObjectProxyHandlerFactory.java:49) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ObjectProxyNode.executeImpl(PolyglotObjectProxyHandler.java:148) ~[?:?]
        at com.oracle.truffle.polyglot.HostToGuestRootNode.execute(HostToGuestRootNode.java:125) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.call(DefaultCallTarget.java:102) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler.invoke(PolyglotObjectProxyHandler.java:103) ~[?:?]
        at com.sun.proxy.$Proxy2504.addTo(Unknown Source) ~[?:?]
        at java.time.ZonedDateTime.plus(ZonedDateTime.java:1608) ~[?:?]
        at com.oracle.truffle.host.HostMethodDesc$SingleMethod$MHBase.invokeHandle(HostMethodDesc.java:331) ~[?:?]
        at com.oracle.truffle.host.GuestToHostCodeCache$1.executeImpl(GuestToHostCodeCache.java:96) ~[?:?]
        at com.oracle.truffle.host.GuestToHostRootNode.execute(GuestToHostRootNode.java:80) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultRuntimeAccessor$DefaultRuntimeSupport.callInlined(DefaultRuntimeAccessor.java:160) ~[?:?]
        at com.oracle.truffle.host.GuestToHostRootNode.guestToHostCall(GuestToHostRootNode.java:102) ~[?:?]
        at com.oracle.truffle.host.HostMethodDesc$SingleMethod$MHBase.invokeGuestToHost(HostMethodDesc.java:362) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNode.doInvoke(HostExecuteNode.java:871) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNode.doOverloadedCached(HostExecuteNode.java:288) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNodeGen.execute(HostExecuteNodeGen.java:85) ~[?:?]
        at com.oracle.truffle.host.HostObject.invokeMember(HostObject.java:451) ~[?:?]
        at com.oracle.truffle.host.HostObjectGen$InteropLibraryExports$Cached.invokeMember(HostObjectGen.java:2674) ~[?:?]
        at com.oracle.truffle.api.interop.InteropLibraryGen$CachedDispatch.invokeMember(InteropLibraryGen.java:8134) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$ForeignInvokeNode.executeCall(JSFunctionCallNode.java:1496) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeCall(JSFunctionCallNode.java:244) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$InvokeNode.execute(JSFunctionCallNode.java:732) ~[?:?]
        at com.oracle.truffle.js.nodes.control.ReturnNode$TerminalPositionReturnNode.execute(ReturnNode.java:165) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeGeneric(AbstractBlockNode.java:85) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeGeneric(AbstractBlockNode.java:55) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultBlockNode.executeGeneric(DefaultBlockNode.java:65) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.execute(AbstractBlockNode.java:75) ~[?:?]
        at com.oracle.truffle.js.nodes.function.FunctionBodyNode.execute(FunctionBodyNode.java:73) ~[?:?]
        at com.oracle.truffle.js.nodes.function.FunctionRootNode.executeInRealm(FunctionRootNode.java:143) ~[?:?]
        at com.oracle.truffle.js.runtime.JavaScriptRealmBoundaryRootNode.execute(JavaScriptRealmBoundaryRootNode.java:92) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultDirectCallNode.call(DefaultDirectCallNode.java:59) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$UnboundJSFunctionCacheNode.executeCall(JSFunctionCallNode.java:1277) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeCall(JSFunctionCallNode.java:244) ~[?:?]
        at com.oracle.truffle.js.nodes.interop.JSInteropInvokeNode.doCached(JSInteropInvokeNode.java:80) ~[?:?]
        at com.oracle.truffle.js.nodes.interop.JSInteropInvokeNodeGen.execute(JSInteropInvokeNodeGen.java:46) ~[?:?]
        at com.oracle.truffle.js.runtime.objects.JSObject.invokeMember(JSObject.java:241) ~[?:?]
        at com.oracle.truffle.js.runtime.objects.JSObjectGen$InteropLibraryExports$Cached.invokeMember(JSObjectGen.java:400) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ProxyInvokeNode.invokeOrExecute(PolyglotObjectProxyHandler.java:231) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ProxyInvokeNode.doCachedMethod(PolyglotObjectProxyHandler.java:206) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandlerFactory$ProxyInvokeNodeGen.execute(PolyglotObjectProxyHandlerFactory.java:49) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ObjectProxyNode.executeImpl(PolyglotObjectProxyHandler.java:148) ~[?:?]
        at com.oracle.truffle.polyglot.HostToGuestRootNode.execute(HostToGuestRootNode.java:125) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.call(DefaultCallTarget.java:102) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler.invoke(PolyglotObjectProxyHandler.java:103) ~[?:?]
        at com.sun.proxy.$Proxy2504.addTo(Unknown Source) ~[?:?]
        at java.time.ZonedDateTime.plus(ZonedDateTime.java:1608) ~[?:?]
        at com.oracle.truffle.host.HostMethodDesc$SingleMethod$MHBase.invokeHandle(HostMethodDesc.java:331) ~[?:?]
        at com.oracle.truffle.host.GuestToHostCodeCache$1.executeImpl(GuestToHostCodeCache.java:96) ~[?:?]
        at com.oracle.truffle.host.GuestToHostRootNode.execute(GuestToHostRootNode.java:80) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultRuntimeAccessor$DefaultRuntimeSupport.callInlined(DefaultRuntimeAccessor.java:160) ~[?:?]
        at com.oracle.truffle.host.GuestToHostRootNode.guestToHostCall(GuestToHostRootNode.java:102) ~[?:?]
        at com.oracle.truffle.host.HostMethodDesc$SingleMethod$MHBase.invokeGuestToHost(HostMethodDesc.java:362) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNode.doInvoke(HostExecuteNode.java:871) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNode.doOverloadedCached(HostExecuteNode.java:288) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNodeGen.execute(HostExecuteNodeGen.java:85) ~[?:?]
        at com.oracle.truffle.host.HostObject.invokeMember(HostObject.java:451) ~[?:?]
        at com.oracle.truffle.host.HostObjectGen$InteropLibraryExports$Cached.invokeMember(HostObjectGen.java:2674) ~[?:?]
        at com.oracle.truffle.api.interop.InteropLibraryGen$CachedDispatch.invokeMember(InteropLibraryGen.java:8134) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$ForeignInvokeNode.executeCall(JSFunctionCallNode.java:1496) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeCall(JSFunctionCallNode.java:244) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$InvokeNode.execute(JSFunctionCallNode.java:732) ~[?:?]
        at com.oracle.truffle.js.nodes.control.ReturnNode$TerminalPositionReturnNode.execute(ReturnNode.java:165) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeGeneric(AbstractBlockNode.java:85) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeGeneric(AbstractBlockNode.java:55) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultBlockNode.executeGeneric(DefaultBlockNode.java:65) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.execute(AbstractBlockNode.java:75) ~[?:?]
        at com.oracle.truffle.js.nodes.function.FunctionBodyNode.execute(FunctionBodyNode.java:73) ~[?:?]
        at com.oracle.truffle.js.nodes.function.FunctionRootNode.executeInRealm(FunctionRootNode.java:143) ~[?:?]
        at com.oracle.truffle.js.runtime.JavaScriptRealmBoundaryRootNode.execute(JavaScriptRealmBoundaryRootNode.java:92) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultDirectCallNode.call(DefaultDirectCallNode.java:59) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$UnboundJSFunctionCacheNode.executeCall(JSFunctionCallNode.java:1277) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeCall(JSFunctionCallNode.java:244) ~[?:?]
        at com.oracle.truffle.js.nodes.interop.JSInteropInvokeNode.doCached(JSInteropInvokeNode.java:80) ~[?:?]
        at com.oracle.truffle.js.nodes.interop.JSInteropInvokeNodeGen.execute(JSInteropInvokeNodeGen.java:46) ~[?:?]
        at com.oracle.truffle.js.runtime.objects.JSObject.invokeMember(JSObject.java:241) ~[?:?]
        at com.oracle.truffle.js.runtime.objects.JSObjectGen$InteropLibraryExports$Cached.invokeMember(JSObjectGen.java:400) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ProxyInvokeNode.invokeOrExecute(PolyglotObjectProxyHandler.java:231) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ProxyInvokeNode.doCachedMethod(PolyglotObjectProxyHandler.java:206) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandlerFactory$ProxyInvokeNodeGen.execute(PolyglotObjectProxyHandlerFactory.java:49) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ObjectProxyNode.executeImpl(PolyglotObjectProxyHandler.java:148) ~[?:?]
        at com.oracle.truffle.polyglot.HostToGuestRootNode.execute(HostToGuestRootNode.java:125) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.call(DefaultCallTarget.java:102) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler.invoke(PolyglotObjectProxyHandler.java:103) ~[?:?]
        at com.sun.proxy.$Proxy2504.addTo(Unknown Source) ~[?:?]
        at java.time.ZonedDateTime.plus(ZonedDateTime.java:1608) ~[?:?]
        at com.oracle.truffle.host.HostMethodDesc$SingleMethod$MHBase.invokeHandle(HostMethodDesc.java:331) ~[?:?]
        at com.oracle.truffle.host.GuestToHostCodeCache$1.executeImpl(GuestToHostCodeCache.java:96) ~[?:?]
        at com.oracle.truffle.host.GuestToHostRootNode.execute(GuestToHostRootNode.java:80) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultRuntimeAccessor$DefaultRuntimeSupport.callInlined(DefaultRuntimeAccessor.java:160) ~[?:?]
        at com.oracle.truffle.host.GuestToHostRootNode.guestToHostCall(GuestToHostRootNode.java:102) ~[?:?]
        at com.oracle.truffle.host.HostMethodDesc$SingleMethod$MHBase.invokeGuestToHost(HostMethodDesc.java:362) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNode.doInvoke(HostExecuteNode.java:871) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNode.doOverloadedCached(HostExecuteNode.java:288) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNodeGen.execute(HostExecuteNodeGen.java:85) ~[?:?]
        at com.oracle.truffle.host.HostObject.invokeMember(HostObject.java:451) ~[?:?]
        at com.oracle.truffle.host.HostObjectGen$InteropLibraryExports$Cached.invokeMember(HostObjectGen.java:2674) ~[?:?]
        at com.oracle.truffle.api.interop.InteropLibraryGen$CachedDispatch.invokeMember(InteropLibraryGen.java:8134) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$ForeignInvokeNode.executeCall(JSFunctionCallNode.java:1496) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeCall(JSFunctionCallNode.java:244) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$InvokeNode.execute(JSFunctionCallNode.java:732) ~[?:?]
        at com.oracle.truffle.js.nodes.control.ReturnNode$TerminalPositionReturnNode.execute(ReturnNode.java:165) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeGeneric(AbstractBlockNode.java:85) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeGeneric(AbstractBlockNode.java:55) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultBlockNode.executeGeneric(DefaultBlockNode.java:65) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.execute(AbstractBlockNode.java:75) ~[?:?]
        at com.oracle.truffle.js.nodes.function.FunctionBodyNode.execute(FunctionBodyNode.java:73) ~[?:?]
        at com.oracle.truffle.js.nodes.function.FunctionRootNode.executeInRealm(FunctionRootNode.java:143) ~[?:?]
        at com.oracle.truffle.js.runtime.JavaScriptRealmBoundaryRootNode.execute(JavaScriptRealmBoundaryRootNode.java:92) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultDirectCallNode.call(DefaultDirectCallNode.java:59) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$UnboundJSFunctionCacheNode.executeCall(JSFunctionCallNode.java:1277) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeCall(JSFunctionCallNode.java:244) ~[?:?]
        at com.oracle.truffle.js.nodes.interop.JSInteropInvokeNode.doCached(JSInteropInvokeNode.java:80) ~[?:?]
        at com.oracle.truffle.js.nodes.interop.JSInteropInvokeNodeGen.execute(JSInteropInvokeNodeGen.java:46) ~[?:?]
        at com.oracle.truffle.js.runtime.objects.JSObject.invokeMember(JSObject.java:241) ~[?:?]
        at com.oracle.truffle.js.runtime.objects.JSObjectGen$InteropLibraryExports$Cached.invokeMember(JSObjectGen.java:400) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ProxyInvokeNode.invokeOrExecute(PolyglotObjectProxyHandler.java:231) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ProxyInvokeNode.doCachedMethod(PolyglotObjectProxyHandler.java:206) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandlerFactory$ProxyInvokeNodeGen.execute(PolyglotObjectProxyHandlerFactory.java:49) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ObjectProxyNode.executeImpl(PolyglotObjectProxyHandler.java:148) ~[?:?]
        at com.oracle.truffle.polyglot.HostToGuestRootNode.execute(HostToGuestRootNode.java:125) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.call(DefaultCallTarget.java:102) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler.invoke(PolyglotObjectProxyHandler.java:103) ~[?:?]
        at com.sun.proxy.$Proxy2504.addTo(Unknown Source) ~[?:?]
        at java.time.ZonedDateTime.plus(ZonedDateTime.java:1608) ~[?:?]
        at com.oracle.truffle.host.HostMethodDesc$SingleMethod$MHBase.invokeHandle(HostMethodDesc.java:331) ~[?:?]
        at com.oracle.truffle.host.GuestToHostCodeCache$1.executeImpl(GuestToHostCodeCache.java:96) ~[?:?]
        at com.oracle.truffle.host.GuestToHostRootNode.execute(GuestToHostRootNode.java:80) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultRuntimeAccessor$DefaultRuntimeSupport.callInlined(DefaultRuntimeAccessor.java:160) ~[?:?]
        at com.oracle.truffle.host.GuestToHostRootNode.guestToHostCall(GuestToHostRootNode.java:102) ~[?:?]
        at com.oracle.truffle.host.HostMethodDesc$SingleMethod$MHBase.invokeGuestToHost(HostMethodDesc.java:362) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNode.doInvoke(HostExecuteNode.java:871) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNode.doOverloadedCached(HostExecuteNode.java:288) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNodeGen.execute(HostExecuteNodeGen.java:85) ~[?:?]
        at com.oracle.truffle.host.HostObject.invokeMember(HostObject.java:451) ~[?:?]
        at com.oracle.truffle.host.HostObjectGen$InteropLibraryExports$Cached.invokeMember(HostObjectGen.java:2674) ~[?:?]
        at com.oracle.truffle.api.interop.InteropLibraryGen$CachedDispatch.invokeMember(InteropLibraryGen.java:8134) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$ForeignInvokeNode.executeCall(JSFunctionCallNode.java:1496) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeCall(JSFunctionCallNode.java:244) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$InvokeNode.execute(JSFunctionCallNode.java:732) ~[?:?]
        at com.oracle.truffle.js.nodes.control.ReturnNode$TerminalPositionReturnNode.execute(ReturnNode.java:165) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeGeneric(AbstractBlockNode.java:85) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeGeneric(AbstractBlockNode.java:55) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultBlockNode.executeGeneric(DefaultBlockNode.java:65) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.execute(AbstractBlockNode.java:75) ~[?:?]
        at com.oracle.truffle.js.nodes.function.FunctionBodyNode.execute(FunctionBodyNode.java:73) ~[?:?]
        at com.oracle.truffle.js.nodes.function.FunctionRootNode.executeInRealm(FunctionRootNode.java:143) ~[?:?]
        at com.oracle.truffle.js.runtime.JavaScriptRealmBoundaryRootNode.execute(JavaScriptRealmBoundaryRootNode.java:92) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultDirectCallNode.call(DefaultDirectCallNode.java:59) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$UnboundJSFunctionCacheNode.executeCall(JSFunctionCallNode.java:1277) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeCall(JSFunctionCallNode.java:244) ~[?:?]
        at com.oracle.truffle.js.nodes.interop.JSInteropInvokeNode.doCached(JSInteropInvokeNode.java:80) ~[?:?]
        at com.oracle.truffle.js.nodes.interop.JSInteropInvokeNodeGen.execute(JSInteropInvokeNodeGen.java:46) ~[?:?]
        at com.oracle.truffle.js.runtime.objects.JSObject.invokeMember(JSObject.java:241) ~[?:?]
        at com.oracle.truffle.js.runtime.objects.JSObjectGen$InteropLibraryExports$Cached.invokeMember(JSObjectGen.java:400) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ProxyInvokeNode.invokeOrExecute(PolyglotObjectProxyHandler.java:231) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ProxyInvokeNode.doCachedMethod(PolyglotObjectProxyHandler.java:206) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandlerFactory$ProxyInvokeNodeGen.execute(PolyglotObjectProxyHandlerFactory.java:49) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ObjectProxyNode.executeImpl(PolyglotObjectProxyHandler.java:148) ~[?:?]
        at com.oracle.truffle.polyglot.HostToGuestRootNode.execute(HostToGuestRootNode.java:125) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.call(DefaultCallTarget.java:102) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler.invoke(PolyglotObjectProxyHandler.java:103) ~[?:?]
        at com.sun.proxy.$Proxy2504.addTo(Unknown Source) ~[?:?]
        at java.time.ZonedDateTime.plus(ZonedDateTime.java:1608) ~[?:?]
        at com.oracle.truffle.host.HostMethodDesc$SingleMethod$MHBase.invokeHandle(HostMethodDesc.java:331) ~[?:?]
        at com.oracle.truffle.host.GuestToHostCodeCache$1.executeImpl(GuestToHostCodeCache.java:96) ~[?:?]
        at com.oracle.truffle.host.GuestToHostRootNode.execute(GuestToHostRootNode.java:80) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultRuntimeAccessor$DefaultRuntimeSupport.callInlined(DefaultRuntimeAccessor.java:160) ~[?:?]
        at com.oracle.truffle.host.GuestToHostRootNode.guestToHostCall(GuestToHostRootNode.java:102) ~[?:?]
        at com.oracle.truffle.host.HostMethodDesc$SingleMethod$MHBase.invokeGuestToHost(HostMethodDesc.java:362) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNode.doInvoke(HostExecuteNode.java:871) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNode.doOverloadedCached(HostExecuteNode.java:288) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNodeGen.execute(HostExecuteNodeGen.java:85) ~[?:?]
        at com.oracle.truffle.host.HostObject.invokeMember(HostObject.java:451) ~[?:?]
        at com.oracle.truffle.host.HostObjectGen$InteropLibraryExports$Cached.invokeMember(HostObjectGen.java:2674) ~[?:?]
        at com.oracle.truffle.api.interop.InteropLibraryGen$CachedDispatch.invokeMember(InteropLibraryGen.java:8134) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$ForeignInvokeNode.executeCall(JSFunctionCallNode.java:1496) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeCall(JSFunctionCallNode.java:244) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$InvokeNode.execute(JSFunctionCallNode.java:732) ~[?:?]
        at com.oracle.truffle.js.nodes.control.ReturnNode$TerminalPositionReturnNode.execute(ReturnNode.java:165) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeGeneric(AbstractBlockNode.java:85) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeGeneric(AbstractBlockNode.java:55) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultBlockNode.executeGeneric(DefaultBlockNode.java:65) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.execute(AbstractBlockNode.java:75) ~[?:?]
        at com.oracle.truffle.js.nodes.function.FunctionBodyNode.execute(FunctionBodyNode.java:73) ~[?:?]
        at com.oracle.truffle.js.nodes.function.FunctionRootNode.executeInRealm(FunctionRootNode.java:143) ~[?:?]
        at com.oracle.truffle.js.runtime.JavaScriptRealmBoundaryRootNode.execute(JavaScriptRealmBoundaryRootNode.java:92) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultDirectCallNode.call(DefaultDirectCallNode.java:59) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$UnboundJSFunctionCacheNode.executeCall(JSFunctionCallNode.java:1277) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeCall(JSFunctionCallNode.java:244) ~[?:?]
        at com.oracle.truffle.js.nodes.interop.JSInteropInvokeNode.doCached(JSInteropInvokeNode.java:80) ~[?:?]
        at com.oracle.truffle.js.nodes.interop.JSInteropInvokeNodeGen.execute(JSInteropInvokeNodeGen.java:46) ~[?:?]
        at com.oracle.truffle.js.runtime.objects.JSObject.invokeMember(JSObject.java:241) ~[?:?]
        at com.oracle.truffle.js.runtime.objects.JSObjectGen$InteropLibraryExports$Cached.invokeMember(JSObjectGen.java:400) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ProxyInvokeNode.invokeOrExecute(PolyglotObjectProxyHandler.java:231) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ProxyInvokeNode.doCachedMethod(PolyglotObjectProxyHandler.java:206) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandlerFactory$ProxyInvokeNodeGen.execute(PolyglotObjectProxyHandlerFactory.java:49) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ObjectProxyNode.executeImpl(PolyglotObjectProxyHandler.java:148) ~[?:?]
        at com.oracle.truffle.polyglot.HostToGuestRootNode.execute(HostToGuestRootNode.java:125) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.call(DefaultCallTarget.java:102) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler.invoke(PolyglotObjectProxyHandler.java:103) ~[?:?]
        at com.sun.proxy.$Proxy2504.addTo(Unknown Source) ~[?:?]
        at java.time.ZonedDateTime.plus(ZonedDateTime.java:1608) ~[?:?]
        at com.oracle.truffle.host.HostMethodDesc$SingleMethod$MHBase.invokeHandle(HostMethodDesc.java:331) ~[?:?]
        at com.oracle.truffle.host.GuestToHostCodeCache$1.executeImpl(GuestToHostCodeCache.java:96) ~[?:?]
        at com.oracle.truffle.host.GuestToHostRootNode.execute(GuestToHostRootNode.java:80) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultRuntimeAccessor$DefaultRuntimeSupport.callInlined(DefaultRuntimeAccessor.java:160) ~[?:?]
        at com.oracle.truffle.host.GuestToHostRootNode.guestToHostCall(GuestToHostRootNode.java:102) ~[?:?]
        at com.oracle.truffle.host.HostMethodDesc$SingleMethod$MHBase.invokeGuestToHost(HostMethodDesc.java:362) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNode.doInvoke(HostExecuteNode.java:871) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNode.doOverloadedCached(HostExecuteNode.java:288) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNodeGen.execute(HostExecuteNodeGen.java:85) ~[?:?]
        at com.oracle.truffle.host.HostObject.invokeMember(HostObject.java:451) ~[?:?]
        at com.oracle.truffle.host.HostObjectGen$InteropLibraryExports$Cached.invokeMember(HostObjectGen.java:2674) ~[?:?]
        at com.oracle.truffle.api.interop.InteropLibraryGen$CachedDispatch.invokeMember(InteropLibraryGen.java:8134) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$ForeignInvokeNode.executeCall(JSFunctionCallNode.java:1496) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeCall(JSFunctionCallNode.java:244) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$InvokeNode.execute(JSFunctionCallNode.java:732) ~[?:?]
        at com.oracle.truffle.js.nodes.control.ReturnNode$TerminalPositionReturnNode.execute(ReturnNode.java:165) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeGeneric(AbstractBlockNode.java:85) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeGeneric(AbstractBlockNode.java:55) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultBlockNode.executeGeneric(DefaultBlockNode.java:65) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.execute(AbstractBlockNode.java:75) ~[?:?]
        at com.oracle.truffle.js.nodes.function.FunctionBodyNode.execute(FunctionBodyNode.java:73) ~[?:?]
        at com.oracle.truffle.js.nodes.function.FunctionRootNode.executeInRealm(FunctionRootNode.java:143) ~[?:?]
        at com.oracle.truffle.js.runtime.JavaScriptRealmBoundaryRootNode.execute(JavaScriptRealmBoundaryRootNode.java:92) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultDirectCallNode.call(DefaultDirectCallNode.java:59) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$UnboundJSFunctionCacheNode.executeCall(JSFunctionCallNode.java:1277) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeCall(JSFunctionCallNode.java:244) ~[?:?]
        at com.oracle.truffle.js.nodes.interop.JSInteropInvokeNode.doCached(JSInteropInvokeNode.java:80) ~[?:?]
        at com.oracle.truffle.js.nodes.interop.JSInteropInvokeNodeGen.execute(JSInteropInvokeNodeGen.java:46) ~[?:?]
        at com.oracle.truffle.js.runtime.objects.JSObject.invokeMember(JSObject.java:241) ~[?:?]
        at com.oracle.truffle.js.runtime.objects.JSObjectGen$InteropLibraryExports$Cached.invokeMember(JSObjectGen.java:400) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ProxyInvokeNode.invokeOrExecute(PolyglotObjectProxyHandler.java:231) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ProxyInvokeNode.doCachedMethod(PolyglotObjectProxyHandler.java:206) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandlerFactory$ProxyInvokeNodeGen.execute(PolyglotObjectProxyHandlerFactory.java:49) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ObjectProxyNode.executeImpl(PolyglotObjectProxyHandler.java:148) ~[?:?]
        at com.oracle.truffle.polyglot.HostToGuestRootNode.execute(HostToGuestRootNode.java:125) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.call(DefaultCallTarget.java:102) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler.invoke(PolyglotObjectProxyHandler.java:103) ~[?:?]
        at com.sun.proxy.$Proxy2504.addTo(Unknown Source) ~[?:?]
        at java.time.ZonedDateTime.plus(ZonedDateTime.java:1608) ~[?:?]
        at com.oracle.truffle.host.HostMethodDesc$SingleMethod$MHBase.invokeHandle(HostMethodDesc.java:331) ~[?:?]
        at com.oracle.truffle.host.GuestToHostCodeCache$1.executeImpl(GuestToHostCodeCache.java:96) ~[?:?]
        at com.oracle.truffle.host.GuestToHostRootNode.execute(GuestToHostRootNode.java:80) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultRuntimeAccessor$DefaultRuntimeSupport.callInlined(DefaultRuntimeAccessor.java:160) ~[?:?]
        at com.oracle.truffle.host.GuestToHostRootNode.guestToHostCall(GuestToHostRootNode.java:102) ~[?:?]
        at com.oracle.truffle.host.HostMethodDesc$SingleMethod$MHBase.invokeGuestToHost(HostMethodDesc.java:362) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNode.doInvoke(HostExecuteNode.java:871) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNode.doOverloadedCached(HostExecuteNode.java:288) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNodeGen.execute(HostExecuteNodeGen.java:85) ~[?:?]
        at com.oracle.truffle.host.HostObject.invokeMember(HostObject.java:451) ~[?:?]
        at com.oracle.truffle.host.HostObjectGen$InteropLibraryExports$Cached.invokeMember(HostObjectGen.java:2674) ~[?:?]
        at com.oracle.truffle.api.interop.InteropLibraryGen$CachedDispatch.invokeMember(InteropLibraryGen.java:8134) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$ForeignInvokeNode.executeCall(JSFunctionCallNode.java:1496) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeCall(JSFunctionCallNode.java:244) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$InvokeNode.execute(JSFunctionCallNode.java:732) ~[?:?]
        at com.oracle.truffle.js.nodes.control.ReturnNode$TerminalPositionReturnNode.execute(ReturnNode.java:165) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeGeneric(AbstractBlockNode.java:85) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeGeneric(AbstractBlockNode.java:55) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultBlockNode.executeGeneric(DefaultBlockNode.java:65) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.execute(AbstractBlockNode.java:75) ~[?:?]
        at com.oracle.truffle.js.nodes.function.FunctionBodyNode.execute(FunctionBodyNode.java:73) ~[?:?]
        at com.oracle.truffle.js.nodes.function.FunctionRootNode.executeInRealm(FunctionRootNode.java:143) ~[?:?]
        at com.oracle.truffle.js.runtime.JavaScriptRealmBoundaryRootNode.execute(JavaScriptRealmBoundaryRootNode.java:92) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultDirectCallNode.call(DefaultDirectCallNode.java:59) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$UnboundJSFunctionCacheNode.executeCall(JSFunctionCallNode.java:1277) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeCall(JSFunctionCallNode.java:244) ~[?:?]
        at com.oracle.truffle.js.nodes.interop.JSInteropInvokeNode.doCached(JSInteropInvokeNode.java:80) ~[?:?]
        at com.oracle.truffle.js.nodes.interop.JSInteropInvokeNodeGen.execute(JSInteropInvokeNodeGen.java:46) ~[?:?]
        at com.oracle.truffle.js.runtime.objects.JSObject.invokeMember(JSObject.java:241) ~[?:?]
        at com.oracle.truffle.js.runtime.objects.JSObjectGen$InteropLibraryExports$Cached.invokeMember(JSObjectGen.java:400) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ProxyInvokeNode.invokeOrExecute(PolyglotObjectProxyHandler.java:231) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ProxyInvokeNode.doCachedMethod(PolyglotObjectProxyHandler.java:206) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandlerFactory$ProxyInvokeNodeGen.execute(PolyglotObjectProxyHandlerFactory.java:49) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ObjectProxyNode.executeImpl(PolyglotObjectProxyHandler.java:148) ~[?:?]
        at com.oracle.truffle.polyglot.HostToGuestRootNode.execute(HostToGuestRootNode.java:125) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.call(DefaultCallTarget.java:102) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler.invoke(PolyglotObjectProxyHandler.java:103) ~[?:?]
        at com.sun.proxy.$Proxy2504.addTo(Unknown Source) ~[?:?]
        at java.time.ZonedDateTime.plus(ZonedDateTime.java:1608) ~[?:?]
        at com.oracle.truffle.host.HostMethodDesc$SingleMethod$MHBase.invokeHandle(HostMethodDesc.java:331) ~[?:?]
        at com.oracle.truffle.host.GuestToHostCodeCache$1.executeImpl(GuestToHostCodeCache.java:96) ~[?:?]
        at com.oracle.truffle.host.GuestToHostRootNode.execute(GuestToHostRootNode.java:80) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultRuntimeAccessor$DefaultRuntimeSupport.callInlined(DefaultRuntimeAccessor.java:160) ~[?:?]
        at com.oracle.truffle.host.GuestToHostRootNode.guestToHostCall(GuestToHostRootNode.java:102) ~[?:?]
        at com.oracle.truffle.host.HostMethodDesc$SingleMethod$MHBase.invokeGuestToHost(HostMethodDesc.java:362) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNode.doInvoke(HostExecuteNode.java:871) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNode.doOverloadedCached(HostExecuteNode.java:288) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNodeGen.execute(HostExecuteNodeGen.java:85) ~[?:?]
        at com.oracle.truffle.host.HostObject.invokeMember(HostObject.java:451) ~[?:?]
        at com.oracle.truffle.host.HostObjectGen$InteropLibraryExports$Cached.invokeMember(HostObjectGen.java:2674) ~[?:?]
        at com.oracle.truffle.api.interop.InteropLibraryGen$CachedDispatch.invokeMember(InteropLibraryGen.java:8134) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$ForeignInvokeNode.executeCall(JSFunctionCallNode.java:1496) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeCall(JSFunctionCallNode.java:244) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$InvokeNode.execute(JSFunctionCallNode.java:732) ~[?:?]
        at com.oracle.truffle.js.nodes.control.ReturnNode$TerminalPositionReturnNode.execute(ReturnNode.java:165) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeGeneric(AbstractBlockNode.java:85) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeGeneric(AbstractBlockNode.java:55) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultBlockNode.executeGeneric(DefaultBlockNode.java:65) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.execute(AbstractBlockNode.java:75) ~[?:?]
        at com.oracle.truffle.js.nodes.function.FunctionBodyNode.execute(FunctionBodyNode.java:73) ~[?:?]
        at com.oracle.truffle.js.nodes.function.FunctionRootNode.executeInRealm(FunctionRootNode.java:143) ~[?:?]
        at com.oracle.truffle.js.runtime.JavaScriptRealmBoundaryRootNode.execute(JavaScriptRealmBoundaryRootNode.java:92) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultDirectCallNode.call(DefaultDirectCallNode.java:59) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$UnboundJSFunctionCacheNode.executeCall(JSFunctionCallNode.java:1277) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeCall(JSFunctionCallNode.java:244) ~[?:?]
        at com.oracle.truffle.js.nodes.interop.JSInteropInvokeNode.doCached(JSInteropInvokeNode.java:80) ~[?:?]
        at com.oracle.truffle.js.nodes.interop.JSInteropInvokeNodeGen.execute(JSInteropInvokeNodeGen.java:46) ~[?:?]
        at com.oracle.truffle.js.runtime.objects.JSObject.invokeMember(JSObject.java:241) ~[?:?]
        at com.oracle.truffle.js.runtime.objects.JSObjectGen$InteropLibraryExports$Cached.invokeMember(JSObjectGen.java:400) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ProxyInvokeNode.invokeOrExecute(PolyglotObjectProxyHandler.java:231) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ProxyInvokeNode.doCachedMethod(PolyglotObjectProxyHandler.java:206) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandlerFactory$ProxyInvokeNodeGen.execute(PolyglotObjectProxyHandlerFactory.java:49) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ObjectProxyNode.executeImpl(PolyglotObjectProxyHandler.java:148) ~[?:?]
        at com.oracle.truffle.polyglot.HostToGuestRootNode.execute(HostToGuestRootNode.java:125) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.call(DefaultCallTarget.java:102) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler.invoke(PolyglotObjectProxyHandler.java:103) ~[?:?]
        at com.sun.proxy.$Proxy2504.addTo(Unknown Source) ~[?:?]
        at java.time.ZonedDateTime.plus(ZonedDateTime.java:1608) ~[?:?]
        at com.oracle.truffle.host.HostMethodDesc$SingleMethod$MHBase.invokeHandle(HostMethodDesc.java:331) ~[?:?]
        at com.oracle.truffle.host.GuestToHostCodeCache$1.executeImpl(GuestToHostCodeCache.java:96) ~[?:?]
        at com.oracle.truffle.host.GuestToHostRootNode.execute(GuestToHostRootNode.java:80) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultRuntimeAccessor$DefaultRuntimeSupport.callInlined(DefaultRuntimeAccessor.java:160) ~[?:?]
        at com.oracle.truffle.host.GuestToHostRootNode.guestToHostCall(GuestToHostRootNode.java:102) ~[?:?]
        at com.oracle.truffle.host.HostMethodDesc$SingleMethod$MHBase.invokeGuestToHost(HostMethodDesc.java:362) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNode.doInvoke(HostExecuteNode.java:871) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNode.doOverloadedCached(HostExecuteNode.java:288) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNodeGen.execute(HostExecuteNodeGen.java:85) ~[?:?]
        at com.oracle.truffle.host.HostObject.invokeMember(HostObject.java:451) ~[?:?]
        at com.oracle.truffle.host.HostObjectGen$InteropLibraryExports$Cached.invokeMember(HostObjectGen.java:2674) ~[?:?]
        at com.oracle.truffle.api.interop.InteropLibraryGen$CachedDispatch.invokeMember(InteropLibraryGen.java:8134) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$ForeignInvokeNode.executeCall(JSFunctionCallNode.java:1496) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeCall(JSFunctionCallNode.java:244) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$InvokeNode.execute(JSFunctionCallNode.java:732) ~[?:?]
        at com.oracle.truffle.js.nodes.control.ReturnNode$TerminalPositionReturnNode.execute(ReturnNode.java:165) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeGeneric(AbstractBlockNode.java:85) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeGeneric(AbstractBlockNode.java:55) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultBlockNode.executeGeneric(DefaultBlockNode.java:65) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.execute(AbstractBlockNode.java:75) ~[?:?]
        at com.oracle.truffle.js.nodes.function.FunctionBodyNode.execute(FunctionBodyNode.java:73) ~[?:?]
        at com.oracle.truffle.js.nodes.function.FunctionRootNode.executeInRealm(FunctionRootNode.java:143) ~[?:?]
        at com.oracle.truffle.js.runtime.JavaScriptRealmBoundaryRootNode.execute(JavaScriptRealmBoundaryRootNode.java:92) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultDirectCallNode.call(DefaultDirectCallNode.java:59) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$UnboundJSFunctionCacheNode.executeCall(JSFunctionCallNode.java:1277) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeCall(JSFunctionCallNode.java:244) ~[?:?]
        at com.oracle.truffle.js.nodes.interop.JSInteropInvokeNode.doCached(JSInteropInvokeNode.java:80) ~[?:?]
        at com.oracle.truffle.js.nodes.interop.JSInteropInvokeNodeGen.execute(JSInteropInvokeNodeGen.java:46) ~[?:?]
        at com.oracle.truffle.js.runtime.objects.JSObject.invokeMember(JSObject.java:241) ~[?:?]
        at com.oracle.truffle.js.runtime.objects.JSObjectGen$InteropLibraryExports$Cached.invokeMember(JSObjectGen.java:400) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ProxyInvokeNode.invokeOrExecute(PolyglotObjectProxyHandler.java:231) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ProxyInvokeNode.doCachedMethod(PolyglotObjectProxyHandler.java:206) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandlerFactory$ProxyInvokeNodeGen.execute(PolyglotObjectProxyHandlerFactory.java:49) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ObjectProxyNode.executeImpl(PolyglotObjectProxyHandler.java:148) ~[?:?]
        at com.oracle.truffle.polyglot.HostToGuestRootNode.execute(HostToGuestRootNode.java:125) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.call(DefaultCallTarget.java:102) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler.invoke(PolyglotObjectProxyHandler.java:103) ~[?:?]
        at com.sun.proxy.$Proxy2504.addTo(Unknown Source) ~[?:?]
        at java.time.ZonedDateTime.plus(ZonedDateTime.java:1608) ~[?:?]
        at com.oracle.truffle.host.HostMethodDesc$SingleMethod$MHBase.invokeHandle(HostMethodDesc.java:331) ~[?:?]
        at com.oracle.truffle.host.GuestToHostCodeCache$1.executeImpl(GuestToHostCodeCache.java:96) ~[?:?]
        at com.oracle.truffle.host.GuestToHostRootNode.execute(GuestToHostRootNode.java:80) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultRuntimeAccessor$DefaultRuntimeSupport.callInlined(DefaultRuntimeAccessor.java:160) ~[?:?]
        at com.oracle.truffle.host.GuestToHostRootNode.guestToHostCall(GuestToHostRootNode.java:102) ~[?:?]
        at com.oracle.truffle.host.HostMethodDesc$SingleMethod$MHBase.invokeGuestToHost(HostMethodDesc.java:362) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNode.doInvoke(HostExecuteNode.java:871) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNode.doOverloadedCached(HostExecuteNode.java:288) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNodeGen.execute(HostExecuteNodeGen.java:85) ~[?:?]
        at com.oracle.truffle.host.HostObject.invokeMember(HostObject.java:451) ~[?:?]
        at com.oracle.truffle.host.HostObjectGen$InteropLibraryExports$Cached.invokeMember(HostObjectGen.java:2674) ~[?:?]
        at com.oracle.truffle.api.interop.InteropLibraryGen$CachedDispatch.invokeMember(InteropLibraryGen.java:8134) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$ForeignInvokeNode.executeCall(JSFunctionCallNode.java:1496) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeCall(JSFunctionCallNode.java:244) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$InvokeNode.execute(JSFunctionCallNode.java:732) ~[?:?]
        at com.oracle.truffle.js.nodes.control.ReturnNode$TerminalPositionReturnNode.execute(ReturnNode.java:165) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeGeneric(AbstractBlockNode.java:85) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeGeneric(AbstractBlockNode.java:55) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultBlockNode.executeGeneric(DefaultBlockNode.java:65) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.execute(AbstractBlockNode.java:75) ~[?:?]
        at com.oracle.truffle.js.nodes.function.FunctionBodyNode.execute(FunctionBodyNode.java:73) ~[?:?]
        at com.oracle.truffle.js.nodes.function.FunctionRootNode.executeInRealm(FunctionRootNode.java:143) ~[?:?]
        at com.oracle.truffle.js.runtime.JavaScriptRealmBoundaryRootNode.execute(JavaScriptRealmBoundaryRootNode.java:92) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultDirectCallNode.call(DefaultDirectCallNode.java:59) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$UnboundJSFunctionCacheNode.executeCall(JSFunctionCallNode.java:1277) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeCall(JSFunctionCallNode.java:244) ~[?:?]
        at com.oracle.truffle.js.nodes.interop.JSInteropInvokeNode.doCached(JSInteropInvokeNode.java:80) ~[?:?]
        at com.oracle.truffle.js.nodes.interop.JSInteropInvokeNodeGen.execute(JSInteropInvokeNodeGen.java:46) ~[?:?]
        at com.oracle.truffle.js.runtime.objects.JSObject.invokeMember(JSObject.java:241) ~[?:?]
        at com.oracle.truffle.js.runtime.objects.JSObjectGen$InteropLibraryExports$Cached.invokeMember(JSObjectGen.java:400) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ProxyInvokeNode.invokeOrExecute(PolyglotObjectProxyHandler.java:231) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ProxyInvokeNode.doCachedMethod(PolyglotObjectProxyHandler.java:206) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandlerFactory$ProxyInvokeNodeGen.execute(PolyglotObjectProxyHandlerFactory.java:49) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ObjectProxyNode.executeImpl(PolyglotObjectProxyHandler.java:148) ~[?:?]
        at com.oracle.truffle.polyglot.HostToGuestRootNode.execute(HostToGuestRootNode.java:125) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.call(DefaultCallTarget.java:102) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler.invoke(PolyglotObjectProxyHandler.java:103) ~[?:?]
        at com.sun.proxy.$Proxy2504.addTo(Unknown Source) ~[?:?]
        at java.time.ZonedDateTime.plus(ZonedDateTime.java:1608) ~[?:?]
        at com.oracle.truffle.host.HostMethodDesc$SingleMethod$MHBase.invokeHandle(HostMethodDesc.java:331) ~[?:?]
        at com.oracle.truffle.host.GuestToHostCodeCache$1.executeImpl(GuestToHostCodeCache.java:96) ~[?:?]
        at com.oracle.truffle.host.GuestToHostRootNode.execute(GuestToHostRootNode.java:80) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultRuntimeAccessor$DefaultRuntimeSupport.callInlined(DefaultRuntimeAccessor.java:160) ~[?:?]
        at com.oracle.truffle.host.GuestToHostRootNode.guestToHostCall(GuestToHostRootNode.java:102) ~[?:?]
        at com.oracle.truffle.host.HostMethodDesc$SingleMethod$MHBase.invokeGuestToHost(HostMethodDesc.java:362) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNode.doInvoke(HostExecuteNode.java:871) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNode.doOverloadedCached(HostExecuteNode.java:288) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNodeGen.execute(HostExecuteNodeGen.java:85) ~[?:?]
        at com.oracle.truffle.host.HostObject.invokeMember(HostObject.java:451) ~[?:?]
        at com.oracle.truffle.host.HostObjectGen$InteropLibraryExports$Cached.invokeMember(HostObjectGen.java:2674) ~[?:?]
        at com.oracle.truffle.api.interop.InteropLibraryGen$CachedDispatch.invokeMember(InteropLibraryGen.java:8134) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$ForeignInvokeNode.executeCall(JSFunctionCallNode.java:1496) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeCall(JSFunctionCallNode.java:244) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$InvokeNode.execute(JSFunctionCallNode.java:732) ~[?:?]
        at com.oracle.truffle.js.nodes.control.ReturnNode$TerminalPositionReturnNode.execute(ReturnNode.java:165) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeGeneric(AbstractBlockNode.java:85) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeGeneric(AbstractBlockNode.java:55) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultBlockNode.executeGeneric(DefaultBlockNode.java:65) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.execute(AbstractBlockNode.java:75) ~[?:?]
        at com.oracle.truffle.js.nodes.function.FunctionBodyNode.execute(FunctionBodyNode.java:73) ~[?:?]
        at com.oracle.truffle.js.nodes.function.FunctionRootNode.executeInRealm(FunctionRootNode.java:143) ~[?:?]
        at com.oracle.truffle.js.runtime.JavaScriptRealmBoundaryRootNode.execute(JavaScriptRealmBoundaryRootNode.java:92) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultDirectCallNode.call(DefaultDirectCallNode.java:59) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$UnboundJSFunctionCacheNode.executeCall(JSFunctionCallNode.java:1277) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeCall(JSFunctionCallNode.java:244) ~[?:?]
        at com.oracle.truffle.js.nodes.interop.JSInteropInvokeNode.doCached(JSInteropInvokeNode.java:80) ~[?:?]
        at com.oracle.truffle.js.nodes.interop.JSInteropInvokeNodeGen.execute(JSInteropInvokeNodeGen.java:46) ~[?:?]
        at com.oracle.truffle.js.runtime.objects.JSObject.invokeMember(JSObject.java:241) ~[?:?]
        at com.oracle.truffle.js.runtime.objects.JSObjectGen$InteropLibraryExports$Cached.invokeMember(JSObjectGen.java:400) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ProxyInvokeNode.invokeOrExecute(PolyglotObjectProxyHandler.java:231) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ProxyInvokeNode.doCachedMethod(PolyglotObjectProxyHandler.java:206) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandlerFactory$ProxyInvokeNodeGen.execute(PolyglotObjectProxyHandlerFactory.java:49) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ObjectProxyNode.executeImpl(PolyglotObjectProxyHandler.java:148) ~[?:?]
        at com.oracle.truffle.polyglot.HostToGuestRootNode.execute(HostToGuestRootNode.java:125) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.call(DefaultCallTarget.java:102) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler.invoke(PolyglotObjectProxyHandler.java:103) ~[?:?]
        at com.sun.proxy.$Proxy2504.addTo(Unknown Source) ~[?:?]
        at java.time.ZonedDateTime.plus(ZonedDateTime.java:1608) ~[?:?]
        at com.oracle.truffle.host.HostMethodDesc$SingleMethod$MHBase.invokeHandle(HostMethodDesc.java:331) ~[?:?]
        at com.oracle.truffle.host.GuestToHostCodeCache$1.executeImpl(GuestToHostCodeCache.java:96) ~[?:?]
        at com.oracle.truffle.host.GuestToHostRootNode.execute(GuestToHostRootNode.java:80) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultRuntimeAccessor$DefaultRuntimeSupport.callInlined(DefaultRuntimeAccessor.java:160) ~[?:?]
        at com.oracle.truffle.host.GuestToHostRootNode.guestToHostCall(GuestToHostRootNode.java:102) ~[?:?]
        at com.oracle.truffle.host.HostMethodDesc$SingleMethod$MHBase.invokeGuestToHost(HostMethodDesc.java:362) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNode.doInvoke(HostExecuteNode.java:871) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNode.doOverloadedCached(HostExecuteNode.java:288) ~[?:?]
        at com.oracle.truffle.host.HostExecuteNodeGen.execute(HostExecuteNodeGen.java:85) ~[?:?]
        at com.oracle.truffle.host.HostObject.invokeMember(HostObject.java:451) ~[?:?]
        at com.oracle.truffle.host.HostObjectGen$InteropLibraryExports$Cached.invokeMember(HostObjectGen.java:2674) ~[?:?]
        at com.oracle.truffle.api.interop.InteropLibraryGen$CachedDispatch.invokeMember(InteropLibraryGen.java:8134) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$ForeignInvokeNode.executeCall(JSFunctionCallNode.java:1496) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeCall(JSFunctionCallNode.java:244) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$InvokeNode.execute(JSFunctionCallNode.java:732) ~[?:?]
        at com.oracle.truffle.js.nodes.control.ReturnNode$TerminalPositionReturnNode.execute(ReturnNode.java:165) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeGeneric(AbstractBlockNode.java:85) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeGeneric(AbstractBlockNode.java:55) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultBlockNode.executeGeneric(DefaultBlockNode.java:65) ~[?:?]
        at com.oracle.truffle.js.nodes.control.AbstractBlockNode.execute(AbstractBlockNode.java:75) ~[?:?]
        at com.oracle.truffle.js.nodes.function.FunctionBodyNode.execute(FunctionBodyNode.java:73) ~[?:?]
        at com.oracle.truffle.js.nodes.function.FunctionRootNode.executeInRealm(FunctionRootNode.java:143) ~[?:?]
        at com.oracle.truffle.js.runtime.JavaScriptRealmBoundaryRootNode.execute(JavaScriptRealmBoundaryRootNode.java:92) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultCallTarget.callDirectOrIndirect(DefaultCallTarget.java:85) ~[?:?]
        at com.oracle.truffle.api.impl.DefaultDirectCallNode.call(DefaultDirectCallNode.java:59) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$UnboundJSFunctionCacheNode.executeCall(JSFunctionCallNode.java:1277) ~[?:?]
        at com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeCall(JSFunctionCallNode.java:244) ~[?:?]
        at com.oracle.truffle.js.nodes.interop.JSInteropInvokeNode.doCached(JSInteropInvokeNode.java:80) ~[?:?]
        at com.oracle.truffle.js.nodes.interop.JSInteropInvokeNodeGen.execute(JSInteropInvokeNodeGen.java:46) ~[?:?]
        at com.oracle.truffle.js.runtime.objects.JSObject.invokeMember(JSObject.java:241) ~[?:?]
        at com.oracle.truffle.js.runtime.objects.JSObjectGen$InteropLibraryExports$Cached.invokeMember(JSObjectGen.java:400) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ProxyInvokeNode.invokeOrExecute(PolyglotObjectProxyHandler.java:231) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ProxyInvokeNode.doCachedMethod(PolyglotObjectProxyHandler.java:206) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandlerFactory$ProxyInvokeNodeGen.execute(PolyglotObjectProxyHandlerFactory.java:49) ~[?:?]
        at com.oracle.truffle.polyglot.PolyglotObjectProxyHandler$ObjectProxyNode.executeImpl(PolyglotObjectProxyHandler.java:148) ~[?:?]
        at com.oracle.truffle.polyglot.HostToGuestRootNode.execute(HostToGuestRootNode.java:125) ~[?:?]
 ...

but only the first time, after repeating this the log shows the errors mentioned before:

2022-12-29 23:28:28.338 [ERROR] [tion.script.file.rules_sleepstate.js] - Failed to execute rule ECMA2021Script---Sleep-State-cde6d6df-5c2f-4e68-a890-35f6def76db2: java.lang.StackOverflowError
2022-12-29 23:28:28.340 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule 'ECMA2021Script---Sleep-State-cde6d6df-5c2f-4e68-a890-35f6def76db2': Fail to execute action: 1
2022-12-29 23:28:29.976 [ERROR] [tion.script.file.rules_sleepstate.js] - Failed to execute rule ECMA2021Script---Sleep-State-cde6d6df-5c2f-4e68-a890-35f6def76db2: RangeError: Maximum call stack size exceeded: RangeError: Maximum call stack size exceeded
        at addTo (webpack://openhab/./node_modules/@js-joda/core/dist/js-joda.esm.js?:1317)
        at addTo (webpack://openhab/./node_modules/@js-joda/core/dist/js-joda.esm.js?:1318)
        at addTo (webpack://openhab/./node_modules/@js-joda/core/dist/js-joda.esm.js?:1318)
        at addTo (webpack://openhab/./node_modules/@js-joda/core/dist/js-joda.esm.js?:1318)
        at addTo (webpack://openhab/./node_modules/@js-joda/core/dist/js-joda.esm.js?:1318)
        at addTo (webpack://openhab/./node_modules/@js-joda/core/dist/js-joda.esm.js?:1318)
        at addTo (webpack://openhab/./node_modules/@js-joda/core/dist/js-joda.esm.js?:1318)
        at addTo (webpack://openhab/./node_modules/@js-joda/core/dist/js-joda.esm.js?:1318)
        at addTo (webpack://openhab/./node_modules/@js-joda/core/dist/js-joda.esm.js?:1318)
        at addTo (webpack://openhab/./node_modules/@js-joda/core/dist/js-joda.esm.js?:1318)
2022-12-29 23:28:29.978 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule 'ECMA2021Script---Sleep-State-cde6d6df-5c2f-4e68-a890-35f6def76db2': Fail to execute action: 1

I’ll go to bed now… and have a look tomorrow :sleeping:

The very latestes, yet unpublished version of the openhab-js library should be able to parse these strings:

time.toZDT("2022-12-29T01:12:41.206118+0100");

I‘ll try to publish a new version soon, so that you can install it by running npm i openhab inside the $OPENHAB_CONF/automation/js folder.

@rlkoshak Does this problem persist?

thanks good to know… :wink: would be nice to get a notice when you published it finally…

ok thanks! I’ll wait for the update and install it…

Seems this would also make me able to simplify this monster I created a few days ago because of same problem IIRC:

items.getItem("DanfossHRV_Main_Boost_LastActivated").postUpdate(time.toZDT().toLocalDateTime().toString());

I am not sure if that’s the same …

The toZDT method creates a ZonedDateTime from many different formats, but it returns a JS Joda ZonedDateTime. If the postUpdate doesn’t accept this, it’s a different problem.

Does time.toZDT().toString() not work inside postUpdate?

@laursen I see the problem, I’ll fix it and then release a new version soon.

1 Like

Yeah, that suggestion produces:

State '2022-12-30T14:33:57.522+01:00[SYSTEM]' cannot be parsed for item 'DanfossHRV_Main_Boost_LastActivated'.

Initially I was optimistic enough to try:

items.getItem("DanfossHRV_Main_Boost_LastActivated").postUpdate(time.toZDT());

which gave the result I remembered:

java.lang.UnsupportedOperationException: Unsupported operation identifier 'toFullString' and  object '[object Object]'(language: JavaScript, type: ZonedDateTime). Identifier is not executable or instantiable.

Can you please retry with adding replace(/\[[^\]]*\]$/, '') to the ZonedDateTime string?

That works.

1 Like

This is because openHAB core does not accept a ZonedDateTime for state updates and commands – GraalJS translates the JS-Joda ZonedDateTime to the Java counterpart (and that translation works; if not createTimer wouldn’t work).
So we either add the ability to accept a java.time.ZonedDateTime for postUpdate and sendCommand inside core, or I fix it in the library. I’ll fix it in the library, but maybe one can add this to core. See https://www.openhab.org/javadoc/latest/org/openhab/core/model/script/actions/busevent.

@laursen @Dan @rlkoshak
I have just released a new version with many bugfixes, see the changelog: openhab-js/CHANGELOG.md at main · openhab/openhab-js · GitHub

You can install it with npm i openhab.

3 Likes

thanks a lot…

What would be the simplest way possible now? This:

items.getItem("DanfossHRV_Main_Boost_LastActivated").postUpdate(time.toZDT().toString());

Still results in:

State '2022-12-30T16:29:15.516+01:00[SYSTEM]' cannot be parsed for item 'DanfossHRV_Main_Boost_LastActivated'.

Without the toString():

items.getItem("DanfossHRV_Main_Boost_LastActivated").postUpdate(time.toZDT());

I have updated the JSDoc and type definitions, that it also accepts a time.ZonedDateTime

2 Likes
const bedtimeStartTime = time.toZDT(bedtimestart.rawState);

is working now thanks a ton :wink: I’ll have a look at the updated docs which changes you made in general…

1 Like