My Script:function DEBUG_NOTE( msg ) {...} // stuffs a message into our
database log

var obj = new Object();
DEBUG_NOTE( "obj.foo = " + obj.foo );
DEBUG_NOTE( "obj.foo == null " + (obj.foo == null) );
DEBUG_NOTE( "!obj.foo " + !obj.foo );
obj.foo = null;
DEBUG_NOTE( "obj.foo = " + obj.foo );
DEBUG_NOTE( "!obj.foo " + !obj.foo );

My Output:
obj.foo = undefined  // as it should be
obj.foo == null false // THATS not good
!obj.foo true // okay
obj.foo = null // okay
!obj.foo true // okay


"undef == null" is required by the spec (11.9.3) to be true, yet my script's
test of such returns false.

A pile of our script expecting undef==null is now failing horribly.


This seems like a Really Basic feature of the language.  Is it even
theoretically possible to break this on my end?  OTOH, I would expect a Vast
Wailing and Gnashing of Teeth if it wasn't just me.

I'm using a context that inherits a sealed parent scope containing
"initStandardObjects" (and I'm kinda surprised this isn't the default
behavior).  This particular scope also has executed a collection of files
compiled into a script, and there are various exposed java objects & classes
floating around.

I'm using the standard jsFunction_blah means of exposing things, not the
expermental annotations stuff (though it was tempting).

Recent changes include:
1) Upgrade from Rhino 1.5r1
2) Added the sealed parent (or is it a prototype... meh) scope with
"initStandardObjects" instead of creating a new one for each context
3) That collection of files compiled and executed.

I could have sworn all this stuff was working properly after the above
changes, and I haven't upgraded my 1.6 JVM with the new embedded rhino thing
(that i'm aware of... damn auto-installers).  JS.jar is definitely in the
class path, dated 3/22/09.

Rewriting our scripts to work around a deviation from The Standard is pretty
vile.
Expecting our customers to work around it is unacceptable.

Any suggestions?

--Mark Storer
  Senior Software Engineer
  Cardiff.com
#include <disclaimer>
typedef std::Disclaimer<Cardiff> DisCard;
_______________________________________________
dev-tech-js-engine-rhino mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-js-engine-rhino

Reply via email to