Bug 608963 - Deal with an Xray wrapper being delegated to on the proto chain. r=gal a=blocking beta7

This commit is contained in:
Blake Kaplan 2010-11-02 11:26:43 -07:00
Родитель 469511bfbb
Коммит b3c1195172
3 изменённых файлов: 12 добавлений и 2 удалений

Просмотреть файл

@ -0,0 +1,5 @@
<!DOCTYPE html>
<script>
Object.create(location).constructor;
</script>

Просмотреть файл

@ -24,3 +24,4 @@ load 512815-1.html
load 545291-1.html
load 558979.html
load 582649.html
load 608963.html

Просмотреть файл

@ -720,7 +720,9 @@ XrayWrapper<Base, Policy>::get(JSContext *cx, JSObject *wrapper, JSObject *recei
js::Value *vp)
{
// Skip our Base if it isn't already JSProxyHandler.
return JSProxyHandler::get(cx, wrapper, receiver, id, vp);
// NB: None of the functions we call are prepared for the receiver not
// being the wrapper, so ignore the receiver here.
return JSProxyHandler::get(cx, wrapper, wrapper, id, vp);
}
template <typename Base, typename Policy>
@ -729,7 +731,9 @@ XrayWrapper<Base, Policy>::set(JSContext *cx, JSObject *wrapper, JSObject *recei
js::Value *vp)
{
// Skip our Base if it isn't already JSProxyHandler.
return JSProxyHandler::set(cx, wrapper, receiver, id, vp);
// NB: None of the functions we call are prepared for the receiver not
// being the wrapper, so ignore the receiver here.
return JSProxyHandler::set(cx, wrapper, wrapper, id, vp);
}
template <typename Base, typename Policy>