зеркало из https://github.com/mozilla/gecko-dev.git
Bug 986304 - Compile the event handler directly with the target as the scope object. r=bz
This commit is contained in:
Родитель
cd41204f0c
Коммит
18d443dc8b
|
@ -897,7 +897,6 @@ EventListenerManager::CompileEventHandlerInternal(Listener* aListener,
|
||||||
str.Length()));
|
str.Length()));
|
||||||
NS_ENSURE_TRUE(jsStr, NS_ERROR_OUT_OF_MEMORY);
|
NS_ENSURE_TRUE(jsStr, NS_ERROR_OUT_OF_MEMORY);
|
||||||
|
|
||||||
|
|
||||||
// Get the reflector for |aElement|, so that we can pass to setElement.
|
// Get the reflector for |aElement|, so that we can pass to setElement.
|
||||||
if (NS_WARN_IF(!WrapNewBindingObject(cx, target, aElement, &v))) {
|
if (NS_WARN_IF(!WrapNewBindingObject(cx, target, aElement, &v))) {
|
||||||
return NS_ERROR_FAILURE;
|
return NS_ERROR_FAILURE;
|
||||||
|
@ -907,10 +906,11 @@ EventListenerManager::CompileEventHandlerInternal(Listener* aListener,
|
||||||
.setFileAndLine(url.get(), lineNo)
|
.setFileAndLine(url.get(), lineNo)
|
||||||
.setVersion(SCRIPTVERSION_DEFAULT)
|
.setVersion(SCRIPTVERSION_DEFAULT)
|
||||||
.setElement(&v.toObject())
|
.setElement(&v.toObject())
|
||||||
.setElementAttributeName(jsStr);
|
.setElementAttributeName(jsStr)
|
||||||
|
.setDefineOnScope(false);
|
||||||
|
|
||||||
JS::Rooted<JSObject*> handlerFun(cx);
|
JS::Rooted<JSObject*> handlerFun(cx);
|
||||||
result = nsJSUtils::CompileFunction(cx, JS::NullPtr(), options,
|
result = nsJSUtils::CompileFunction(cx, target, options,
|
||||||
nsAtomCString(typeAtom),
|
nsAtomCString(typeAtom),
|
||||||
argCount, argNames, *body, handlerFun.address());
|
argCount, argNames, *body, handlerFun.address());
|
||||||
NS_ENSURE_SUCCESS(result, result);
|
NS_ENSURE_SUCCESS(result, result);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче