goto label_newJSDContext_failure;  if( ! jsd_InitScriptManager(jsdc) )
_newJSDContext(JSRuntime*         jsrt,                JSD_UserCallbacks* callbacks,                void*              user){    JSDContext* jsdc = NULL;    if( ! jsrt )        return NULL;    if( ! _validateUserCallbacks(callbacks) )        return NULL;    jsdc = (JSDContext*) calloc(1, sizeof(JSDContext));    if( ! jsdc )        goto label_newJSDContext_failure;    if( ! JSD_INIT_LOCKS(jsdc) )        goto label_newJSDContext_failure;    JS_INIT_CLIST(&jsdc->links);    jsdc->jsrt = jsrt;    if( callbacks )        memcpy(&jsdc->userCallbacks, callbacks, callbacks->size);        jsdc->user = user;#ifdef JSD_HAS_DANGEROUS_THREAD    jsdc->dangerousThread = _dangerousThread;#endif    JS_INIT_CLIST(&jsdc->threadsStates);    JS_INIT_CLIST(&jsdc->scripts);    JS_INIT_CLIST(&jsdc->sources);    JS_INIT_CLIST(&jsdc->removedSources);    jsdc->sourceAlterCount = 1;    if( ! jsd_CreateAtomTable(jsdc) )        goto label_newJSDContext_failure;    if( ! jsd_InitObjectManager(jsdc) )        goto label_newJSDContext_failure;    jsdc->dumbContext = JS_NewContext(jsdc->jsrt, 256);    if( ! jsdc->dumbContext )        goto label_newJSDContext_failure;    jsdc->glob = JS_NewObject(jsdc->dumbContext, &global_class, NULL, NULL);    if( ! jsdc->glob )        goto label_newJSDContext_failure;    if( ! JS_InitStandardClasses(jsdc->dumbContext, jsdc->glob) )        goto label_newJSDContext_failure;    jsdc->data = NULL;    jsdc->inited = JS_TRUE;    JSD_LOCK();    JS_INSERT_LINK(&jsdc->links, &_jsd_context_list);    JSD_UNLOCK();    return jsdc;label_newJSDContext_failure:    jsd_DestroyObjectManager(jsdc);    jsd_DestroyAtomTable(jsdc);    if( jsdc )        free(jsdc);    return NULL;}