Titanium JIRA Archive
Titanium SDK/CLI (TIMOB)

[TIMOB-17892] iOS: Replace custom JSCore with built-in JSCore version

GitHub Issuen/a
TypeEpic
PriorityCritical
StatusClosed
ResolutionFixed
Resolution Date2017-02-01T13:29:49.000+0000
Affected Version/sn/a
Fix Version/sRelease 4.1.0
ComponentsiOS
Labelsn/a
ReporterIngo Muschenetz
AssigneeEric Merriman
Created2014-10-23T20:27:34.000+0000
Updated2018-02-03T14:33:47.000+0000

Description

Currently, we ship a custom version of JSCore, built from: https://github.com/appcelerator/tijscore Starting in iOS 7, applications can instead use the built-in version of JSCore: http://www.bignerdranch.com/blog/javascriptcore-and-ios-7/ We should investigate switching this. Pros: * Smaller application file size * Updated JS engine with possible performance improvements Cons: * Updated iOS versions could provide breaking changes for your applications * Possible issues with having to update our debugger and profiling code

Comments

  1. Ingo Muschenetz 2015-03-10

    PR is here: https://github.com/appcelerator/titanium_mobile/pull/6450
  2. Martin Guillon 2015-05-07

    This is a great PR! I love it and it works pretty well already. I have one warning, but i think you already know about it. Using the native JSCore proxies objects are never released. I guess this is simply because KrollFinalizer is never called.
  3. Ingo Muschenetz 2015-05-07

    [~farfromrefuge] That's good to hear it is working for you. My understanding is that those proxies would be garbage collected eventually, but not at the speed we did so previously (for the reason you mention). Do you see that happening?
  4. Martin Guillon 2015-05-07

    Well in my tests i put a breakpoint in the _destroy method of TiWindowProxy to see when a window is actually released. With TiCore it gets called from the forceGarbageCollectNow as the Javascript will say that the JS window object is released and then call KrollFinalizer With the native JSCore i don't ever get in that function. I have been playing a bit with it but maybe not long enough, will try a little bit more. But honestly i don't see why it would get released as unregisterProxy is never going to be called on the Proxy.
  5. Ingo Muschenetz 2015-05-07

    [~farfromrefuge] To confirm, as you using the PR linked above, or TIMOB-18834 and TIMOB-18835? We do expect the proxies to hang around, but we do also expect them to be collected eventually.
  6. Martin Guillon 2015-05-08

    @Ingo: I am using the master branch so i am clearly using the PRs from Vishal. I will spend more time on testing.
  7. Hans Knöchel 2017-02-01

    Resolving this epic, as all sub-tasks including TIMOB-18834 are resolved.

JSON Source