i didn't realize the situation with rhino was so dire. this barely qualifies as a js runtime.
i remember shit like strings crossing the boundary from java into js are objects that behave like strings but are not instanceof String, but i had no idea how truly bad it was in here
oh right there's also the thing where the java map interface plays at being a plain js object except that it has all the methods from map and if you have an entry with one of those methods' names as a key then it shadows the method but the in operator is busted too