JSPL
view release on metacpan or search on metacpan
RETVAL
SV*
does_support_anonfunfix(...)
CODE:
PERL_UNUSED_VAR(items); /* -W */
#ifdef JSOPTION_ANONFUNFIX
RETVAL = &PL_sv_yes;
#else
RETVAL = &PL_sv_no;
#endif
OUTPUT:
RETVAL
SV*
does_support_jit(...)
CODE:
PERL_UNUSED_VAR(items); /* -W */
#ifdef JSOPTION_JIT
RETVAL = &PL_sv_yes;
#else
RETVAL = &PL_sv_no;
#endif
OUTPUT:
RETVAL
SV*
does_support_opcb(...)
CODE:
PERL_UNUSED_VAR(items); /* -W */
#ifdef JS_HAS_BRANCH_HANDLER
RETVAL = &PL_sv_no;
#else /* Imply OPCB available */
RETVAL = &PL_sv_yes;
#endif
OUTPUT:
RETVAL
SV*
does_support_threading(...)
CODE:
PERL_UNUSED_VAR(items); /* -W */
#ifdef JS_THREADSAFE
RETVAL = &PL_sv_yes;
#else
RETVAL = &PL_sv_no;
#endif
OUTPUT:
RETVAL
SV* exact_doubles(...)
CODE:
PERL_UNUSED_VAR(items); /* -W */
RETVAL = sizeof(NV) == sizeof(jsdouble) ? &PL_sv_yes : &PL_sv_no;
OUTPUT:
RETVAL
void
jsvisitor(sv)
SV *sv
PPCODE:
if(SvOK(sv) && SvROK(sv) && (sv = SvRV(sv)) && SvMAGICAL(sv)) {
MAGIC *mg = mg_find(sv, PERL_MAGIC_jsvis);
while(mg) {
if(mg->mg_type == PERL_MAGIC_jsvis && mg->mg_private == 0x4a53) {
jsv_mg *jsvis = (jsv_mg *)mg->mg_ptr;
XPUSHs(sv_2mortal(newSViv(PTR2IV(jsvis->pcx))));
}
mg = mg->mg_moremagic;
}
}
MODULE = JSPL PACKAGE = JSPL::RawRT PREFIX = jsr_
JSPL::RawRT
jsr_create(maxbytes)
int maxbytes
CODE:
Newxz(RETVAL, 1, PJS_Runtime);
if(!RETVAL) XSRETURN_UNDEF;
if(plGRuntime) RETVAL->rt = plGRuntime;
else if(maxbytes) RETVAL->rt = JS_NewRuntime(maxbytes);
if(!RETVAL->rt) {
Safefree(RETVAL);
croak("Failed to create Runtime");
}
OUTPUT:
RETVAL
void
jsr_DESTROY(runtime)
JSPL::RawRT runtime
CODE:
if(!PL_dirty && !plGRuntime) JS_DestroyRuntime(runtime->rt);
runtime->rt = NULL;
Safefree(runtime);
MODULE = JSPL PACKAGE = JSPL::Context
JSPL::Context
create(rt, ...)
JSPL::RawRT rt;
INIT:
JSContext *imported = NULL;
CODE:
if(items == 3) {
warn("Importing context\n");
imported = (JSContext *)SvIV(ST(1));
gMyPri = (JSPrincipals *)SvIV(ST(2));
}
RETVAL = PJS_CreateContext(aTHX_ rt, ST(0), imported);
OUTPUT:
RETVAL
void
DESTROY(pcx)
JSPL::Context pcx;
CODE:
PJS_DestroyContext(aTHX_ pcx);
void
( run in 0.668 second using v1.01-cache-2.11-cpan-5511b514fd6 )