I got ChakraCore up and running! 
I set up the following test:
static js_value_t*
js_chakraTest(js_value_t* this, int num_args, js_value_t* args[], bool is_ctor)
{
printf("Something stupid happened and then you got eaten by a %s!\n",
js_value_as_string(args[0]));
return NULL;
}
js_value_t* function = js_value_new_function("chakraTest", js_chakraTest, 0);
js_value_set(js_global_object(), "chakraTest", function);
js_value_unref(function);
js_value_unref(js_value_new_eval(lstr_new("chakraTest('pig');")));
Output:
Something stupid happened and then you got eaten by a pig!
The js_value_unref()s are an unfortunate side effect of the abstraction--I'm not longer passing around the JsRefs directly, so I need to manage the object lifetime manually.