Bug 1088228 part 1.  Introduce an nsINode API for getting the scope chain parent for a given node.  r=peterv
Bug 1088228 part 2.  Create an nsJSUtils API for building the scope chain for a given Element.  r=peterv
Bug 1088228 part 3.  Use the new nsJSUtils API for event handlers.  r=peterv
Bug 1088228 part 4.  Add a version of JS_CloneFunctionObject that allows passing in a scope chain.  r=shu
Bug 1088228 part 5.  Use the new CloneFunctionObject in XBL.  r=peterv
Bug 1088228 part 6.  Simplify the DOM GetParentObject setup, now that we no longer rely on it for scope chains.  r=peterv
Bug 1089026 part 1.  Eliminate the "parent" argument to JS_CloneFunctionObject to make callers use the scopeChain version if they want something other than the global.  r=shu,peterv
Bug 1089026 part 2.  Refactor the CompileFunction code to allow cleanly separating whether we're passing in an object to define the function on or a scope chain.  This change should not cause any behavior changes.  r=shu
Bug 1089026 part 3.  Add a friend API for getting the scope object for a function, if it has one.  r=shu
Bug 1089026 part 4.  Change the CompileFunction calls in the component loader and subscript loader to pass in their desired scope chains.  r=bholley
Bug 1089026 part 5.  Eliminate the ability to provide a non-global parent object to JS::CompileFunction and company except via the scopeChain API.  r=waldo