mirror of
https://github.com/servo/servo.git
synced 2025-08-06 14:10:11 +01:00
apply yvt/servo/fix-named-window-getter
This commit is contained in:
parent
fd1de05592
commit
4c7f198ee2
9 changed files with 398 additions and 49 deletions
|
@ -15,7 +15,9 @@ use js::error::throw_type_error;
|
|||
use js::glue::RUST_JSID_TO_STRING;
|
||||
use js::glue::{CreateProxyHandler, NewProxyObject, ProxyTraps, RUST_JSID_IS_STRING};
|
||||
use js::jsapi::JS_SetImmutablePrototype;
|
||||
use js::jsapi::{Handle, HandleObject, JSClass, JSContext, JSErrNum, UndefinedHandleValue};
|
||||
use js::jsapi::{
|
||||
Handle, HandleObject, JSClass, JSContext, JSErrNum, MutableHandleObject, UndefinedHandleValue,
|
||||
};
|
||||
use js::jsapi::{
|
||||
HandleId, JSClass_NON_NATIVE, MutableHandle, MutableHandleIdVector, ObjectOpResult,
|
||||
PropertyDescriptor, ProxyClassExtension, ProxyClassOps, ProxyObjectOps,
|
||||
|
@ -42,7 +44,7 @@ lazy_static! {
|
|||
ownPropertyKeys: Some(own_property_keys),
|
||||
delete_: Some(delete),
|
||||
enumerate: None,
|
||||
getPrototypeIfOrdinary: None,
|
||||
getPrototypeIfOrdinary: Some(get_prototype_if_ordinary),
|
||||
getPrototype: None,
|
||||
setPrototype: None,
|
||||
setImmutablePrototype: None,
|
||||
|
@ -153,6 +155,18 @@ unsafe extern "C" fn delete(
|
|||
true
|
||||
}
|
||||
|
||||
#[allow(unsafe_code)]
|
||||
unsafe extern "C" fn get_prototype_if_ordinary(
|
||||
_cx: *mut JSContext,
|
||||
proxy: HandleObject,
|
||||
is_ordinary: *mut bool,
|
||||
proto: MutableHandleObject,
|
||||
) -> bool {
|
||||
*is_ordinary = true;
|
||||
proto.set(js::jsapi::GetStaticPrototype(proxy.get()));
|
||||
true
|
||||
}
|
||||
|
||||
#[allow(unsafe_code)]
|
||||
unsafe extern "C" fn prevent_extensions(
|
||||
_cx: *mut JSContext,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue