Although JavaScriptCore is not a browser, but it's an increasing target platform thanks to react-native. There are quite a few differences regarding compatibility, so it would be very useful for the developer community.
Just out of curiosity, is there any reason to have JavaScriptCore data separate from Safari's data?
Just out of curiosity, is there any reason to have JavaScriptCore data separate from Safari's data?
I guess for a reason similar to that we already use for having WebView separate from Chrome?
For the record here: It seems part of what adds some confusion around this is that Apple uses the name "JavaScriptCore" for two different things: both for the JavaScript engine that runs inside Safari, and also for a completely separate framework built on top of that JavaScript engine (to let people developing Apple apps in Swift and Objective-C to run JavaScript code in their apps).
The JavaScriptCore framework doesn’t seem to be released/versioned based on Safari releases.
How it is versioned instead doesn’t seem to be clear, though — I mean, whether it’s released/versioned along with macOS (and iOS releases), or what.
This strikes me as one of those things we can't act on without help from the people at Apple. If we were to add JavaScriptCore, we'd need reviewers from Apple that could give some definitive answers on versioning questions. Otherwise, the quality of such data would be rather low, or have very poor coverage. I'm not suggesting we close this issue, but I'd regard it as blocked without participation from Apple.
Aside from its use in react native, this seems analogous to V8, which is used in Node and Chromium forks. BCD has entries for those, but not for V8 as a separate entity.
I did some more research into React Native as a part of a personal project I've been working on. In its docs, it mentions the following:
When using React Native, you're going to be running your JavaScript code in two environments:
- In most cases, React Native will use JavaScriptCore, the JavaScript engine that powers Safari. Note that on iOS, JavaScriptCore does not use JIT due to the absence of writable executable memory in iOS apps.
- When using Chrome debugging, all JavaScript code runs within Chrome itself, communicating with native code via WebSockets. Chrome uses V8 as its JavaScript engine.
Considering that Safari is integrated so deeply into the OS, I'm betting that React uses the same JavaScriptCore version as Safari itself, which is based upon the iOS editions. As such, we wouldn't need JavaScriptCore as a separate entity.
Most helpful comment
This strikes me as one of those things we can't act on without help from the people at Apple. If we were to add JavaScriptCore, we'd need reviewers from Apple that could give some definitive answers on versioning questions. Otherwise, the quality of such data would be rather low, or have very poor coverage. I'm not suggesting we close this issue, but I'd regard it as blocked without participation from Apple.