js.txt
use strict;
use warnings;
use JavaScript;
my %values = (
Arch => "X86_64",
OpSys => uc($^O), # os name
Disk => 200,
DiskUsage => 100,
Memory => 100,
ImageSize => 1000,
TARGET => {
FileSystemDomain => "foo",
},
MY => {
FileSystemDomain => "foo",
},
);
my $cx = JavaScript::Runtime->new->create_context;
$cx->bind_value($_ => $values{$_}) for(keys %values);
my $ok = $cx->eval(q[
(Arch == "X86_64")
&& (OpSys == "LINUX")
&& (Disk >= DiskUsage)
&& ((Memory * 1024) >= ImageSize)
&& (TARGET.FileSystemDomain == MY.FileSystemDomain)
]);
unless(defined $ok) {
die "js failed to compile: $@\n";
}
print(( $ok ? 'true!' : 'false'), "\n");