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");