>From: kresimir prcela <
kresimi...@gmail.com>
>To:
mobd...@googlegroups.com >Cc:
krs...@solarsail.hcs.harvard.edu >Sent: Friday, May 10, 2013 9:47 AM
>Subject: Re: [mobdevhr] JavaScriptCore sa iOS-om
>
>Pokušao sam koristiti i JSValueProtect i nije mi pomoglo. Očito sam negdje fulao.
>
>Nije mi jasan context u kojem je funkcija proslijeđena.
>
>Kada
se iz JSC-a pozove native iOS funkcija, onda JSC proslijedi osim
callback funkcije i context. Je li moguće da se onda ta funkcije može
izvršavati samo u tom contextu ili se može izvršiti i u globalnom JSC
contextu?
Nisam koristio JSC, no jesam integrirao neke druge JS lib-ove.
Koliko
znam JS funkcija se može izvršiti u bilo kojem context-u u kojem je
definirana, no context-i su neovisni tijekovi izvršavanja, svaki ima
svoje varijable i tijek izvršavanja. Zamisli ih kao neovisne procese ili
aplikacije. Bojim se da izvršavanje JS funkcije direktno iz Objective
C-a zahtjeva da napraviš novi JS context.
>Taj proslijeđeni context postane također invalidan kada je asinhroni task izvršen.
Context
postane invalidan kada završi JS skripta koju context izvršava. Ako se
vrti u beskonačnoj petlji ili čeka na neki vanjski događaj onda je
context i dalje živ.
>Moguće je da moram koristiti JSvalueProtect i nakon taska pozivati callback js funkciju u globalnom contextu.
>Čudni su putovi javascripta. Zbunj. Glup.
Možda
bi ti rješenje moglo biti da tvoj JS context čeka na event koji mu
proslijeđuje Objective C umjesto da pozivaš JS funkciju.
No najbolje da bolje opišeš što želiš postići, pa će biti lakše pronaći rješenje.