Update mozjs to a version that includes SpiderMonkey ESR 115 (#30379)

* Update mozjs to sm115

* fix module stuff

https://phabricator.services.mozilla.com/D163949

* fix always allow cloning

https://bugzilla.mozilla.org/show_bug.cgi?id=1774866

* Update expectations

toStringTag now works on wasm object due to SM bump
This commit is contained in:
Samson 2023-09-20 18:07:38 +02:00 committed by GitHub
parent c2502120cf
commit c9b1f35a36
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 35 additions and 93 deletions

29
Cargo.lock generated
View file

@ -397,6 +397,27 @@ dependencies = [
"which", "which",
] ]
[[package]]
name = "bindgen"
version = "0.68.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "726e4313eb6ec35d2730258ad4e15b547ee75d6afaa1361a922e78e59b7d8078"
dependencies = [
"bitflags 2.4.0",
"cexpr",
"clang-sys",
"lazy_static",
"lazycell",
"peeking_take_while",
"proc-macro2",
"quote",
"regex",
"rustc-hash",
"shlex",
"syn 2.0.32",
"which",
]
[[package]] [[package]]
name = "bit-set" name = "bit-set"
version = "0.5.3" version = "0.5.3"
@ -3680,9 +3701,9 @@ checksum = "903970ae2f248d7275214cf8f387f8ba0c4ea7e3d87a320e85493db60ce28616"
[[package]] [[package]]
name = "mozjs" name = "mozjs"
version = "0.14.1" version = "0.14.1"
source = "git+https://github.com/servo/mozjs#d7f6f30cb9bfd3e7e4d1ff7d605059369acdf25d" source = "git+https://github.com/servo/mozjs#72bd691611dc857dba93fa0df41c4f26088411e7"
dependencies = [ dependencies = [
"bindgen 0.66.1", "bindgen 0.68.1",
"cc", "cc",
"lazy_static", "lazy_static",
"libc", "libc",
@ -3694,9 +3715,9 @@ dependencies = [
[[package]] [[package]]
name = "mozjs_sys" name = "mozjs_sys"
version = "0.68.2" version = "0.68.2"
source = "git+https://github.com/servo/mozjs#d7f6f30cb9bfd3e7e4d1ff7d605059369acdf25d" source = "git+https://github.com/servo/mozjs#72bd691611dc857dba93fa0df41c4f26088411e7"
dependencies = [ dependencies = [
"bindgen 0.66.1", "bindgen 0.68.1",
"cc", "cc",
"encoding_c", "encoding_c",
"encoding_c_mem", "encoding_c_mem",

View file

@ -304,7 +304,6 @@ pub fn write(
let policy = CloneDataPolicy { let policy = CloneDataPolicy {
allowIntraClusterClonableSharedObjects_: false, allowIntraClusterClonableSharedObjects_: false,
allowSharedMemoryObjects_: false, allowSharedMemoryObjects_: false,
allowErrorStackFrames_: false,
}; };
let result = JS_WriteStructuredClone( let result = JS_WriteStructuredClone(
*cx, *cx,
@ -381,7 +380,6 @@ pub fn read(
&CloneDataPolicy { &CloneDataPolicy {
allowIntraClusterClonableSharedObjects_: false, allowIntraClusterClonableSharedObjects_: false,
allowSharedMemoryObjects_: false, allowSharedMemoryObjects_: false,
allowErrorStackFrames_: false,
}, },
&STRUCTURED_CLONE_CALLBACKS, &STRUCTURED_CLONE_CALLBACKS,
sc_holder_ptr as *mut raw::c_void, sc_holder_ptr as *mut raw::c_void,

View file

@ -19,17 +19,16 @@ use ipc_channel::ipc;
use ipc_channel::router::ROUTER; use ipc_channel::router::ROUTER;
use js::jsapi::{ use js::jsapi::{
CompileModule1, ExceptionStackBehavior, FinishDynamicModuleImport, GetModuleRequestSpecifier, CompileModule1, ExceptionStackBehavior, FinishDynamicModuleImport, GetModuleRequestSpecifier,
GetModuleResolveHook, GetRequestedModules, Handle as RawHandle, HandleObject, GetModuleResolveHook, GetRequestedModuleSpecifier, GetRequestedModulesCount,
HandleValue as RawHandleValue, Heap, JSAutoRealm, JSContext, JSObject, JSRuntime, JSString, Handle as RawHandle, HandleObject, HandleValue as RawHandleValue, Heap, JSAutoRealm, JSContext,
JS_ClearPendingException, JS_DefineProperty4, JS_IsExceptionPending, JS_NewStringCopyN, JSObject, JSRuntime, JSString, JS_ClearPendingException, JS_DefineProperty4,
ModuleErrorBehaviour, ModuleEvaluate, ModuleLink, MutableHandleValue, JS_IsExceptionPending, JS_NewStringCopyN, ModuleErrorBehaviour, ModuleEvaluate, ModuleLink,
SetModuleDynamicImportHook, SetModuleMetadataHook, SetModulePrivate, SetModuleResolveHook, MutableHandleValue, SetModuleDynamicImportHook, SetModuleMetadataHook, SetModulePrivate,
SetScriptPrivateReferenceHooks, ThrowOnModuleEvaluationFailure, Value, JSPROP_ENUMERATE, SetModuleResolveHook, SetScriptPrivateReferenceHooks, ThrowOnModuleEvaluationFailure, Value,
JSPROP_ENUMERATE,
}; };
use js::jsval::{JSVal, PrivateValue, UndefinedValue}; use js::jsval::{JSVal, PrivateValue, UndefinedValue};
use js::rust::jsapi_wrapped::{ use js::rust::jsapi_wrapped::JS_GetPendingException;
GetArrayLength, GetRequestedModuleSpecifier, JS_GetElement, JS_GetPendingException,
};
use js::rust::wrappers::JS_SetPendingException; use js::rust::wrappers::JS_SetPendingException;
use js::rust::{ use js::rust::{
transform_str_to_source_text, CompileOptionsWrapper, Handle, HandleValue, IntoHandle, transform_str_to_source_text, CompileOptionsWrapper, Handle, HandleValue, IntoHandle,
@ -568,34 +567,11 @@ impl ModuleTree {
let mut specifier_urls = IndexSet::new(); let mut specifier_urls = IndexSet::new();
unsafe { unsafe {
rooted!(in(*cx) let requested_modules = GetRequestedModules(*cx, module_object)); let length = GetRequestedModulesCount(*cx, module_object);
let mut length = 0;
if !GetArrayLength(*cx, requested_modules.handle(), &mut length) {
let module_length_error =
gen_type_error(&global, "Wrong length of requested modules".to_owned());
return Err(module_length_error);
}
for index in 0..length { for index in 0..length {
rooted!(in(*cx) let mut element = UndefinedValue());
if !JS_GetElement(
*cx,
requested_modules.handle(),
index,
&mut element.handle_mut(),
) {
let get_element_error =
gen_type_error(&global, "Failed to get requested module".to_owned());
return Err(get_element_error);
}
rooted!(in(*cx) let specifier = GetRequestedModuleSpecifier( rooted!(in(*cx) let specifier = GetRequestedModuleSpecifier(
*cx, element.handle() *cx, module_object, index
)); ));
let url = ModuleTree::resolve_module_specifier( let url = ModuleTree::resolve_module_specifier(

View file

@ -1,27 +0,0 @@
[toStringTag.any.html]
[Object.prototype.toString applied to the namespace object]
expected: FAIL
[Object.prototype.toString applied after deleting @@toStringTag]
expected: FAIL
[@@toStringTag exists on the namespace object with the appropriate descriptor]
expected: FAIL
[Object.prototype.toString applied after modifying the namespace object's @@toStringTag]
expected: FAIL
[toStringTag.any.worker.html]
[Object.prototype.toString applied to the namespace object]
expected: FAIL
[Object.prototype.toString applied after deleting @@toStringTag]
expected: FAIL
[@@toStringTag exists on the namespace object with the appropriate descriptor]
expected: FAIL
[Object.prototype.toString applied after modifying the namespace object's @@toStringTag]
expected: FAIL

View file

@ -1,26 +0,0 @@
[toStringTag.any.html]
[Object.prototype.toString applied after deleting @@toStringTag]
expected: FAIL
[@@toStringTag exists on the namespace object with the appropriate descriptor]
expected: FAIL
[Object.prototype.toString applied after modifying the namespace object's @@toStringTag]
expected: FAIL
[Object.prototype.toString applied to the namespace object]
expected: FAIL
[toStringTag.any.worker.html]
[Object.prototype.toString applied after deleting @@toStringTag]
expected: FAIL
[@@toStringTag exists on the namespace object with the appropriate descriptor]
expected: FAIL
[Object.prototype.toString applied after modifying the namespace object's @@toStringTag]
expected: FAIL
[Object.prototype.toString applied to the namespace object]
expected: FAIL