Send prints to the browser console. Obvious in retrospect.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@3840 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
34
src/task.c
34
src/task.c
@ -167,6 +167,8 @@ static void _tf_task_sendPromiseExportMessage(tf_task_t* from, tf_taskstub_t* to
|
||||
static JSValue _tf_task_executeSource(tf_task_t* task, const char* source, const char* name);
|
||||
static tf_taskstub_t* _tf_task_get_stub(tf_task_t* task, taskid_t id);
|
||||
static void _tf_task_release_export(tf_taskstub_t* stub, exportid_t exportId);
|
||||
static void _tf_task_run_jobs_idle(uv_idle_t* idle);
|
||||
static void _tf_task_run_jobs_prepare(uv_prepare_t* prepare);
|
||||
|
||||
typedef struct _import_record_t
|
||||
{
|
||||
@ -774,6 +776,7 @@ const char* _tf_task_get_message_type(tf_task_message_t type)
|
||||
case kLoadFile: return "kLoadFile";
|
||||
case kTaskError: return "kTaskError";
|
||||
case kTaskTrace: return "kTaskTrace";
|
||||
case kPrint: return "kPrint";
|
||||
}
|
||||
return "unknown";
|
||||
}
|
||||
@ -852,6 +855,7 @@ void tf_task_on_receive_packet(int packetType, const char* begin, size_t length,
|
||||
}
|
||||
break;
|
||||
case kSetRequires:
|
||||
JS_FreeValue(to->_context, to->_requires);
|
||||
to->_requires = tf_serialize_load(to, from, begin, length);
|
||||
break;
|
||||
case kLoadFile:
|
||||
@ -945,6 +949,13 @@ void tf_task_on_receive_packet(int packetType, const char* begin, size_t length,
|
||||
JS_FreeValue(to->_context, error);
|
||||
}
|
||||
break;
|
||||
case kPrint:
|
||||
{
|
||||
JSValue arguments = tf_serialize_load(to, from, begin, length);
|
||||
tf_taskstub_on_print(from, arguments);
|
||||
JS_FreeValue(to->_context, arguments);
|
||||
}
|
||||
break;
|
||||
case kTaskTrace:
|
||||
tf_trace_raw(to->_trace, begin, length);
|
||||
break;
|
||||
@ -1323,9 +1334,6 @@ static void _tf_task_trace_timer(uv_timer_t* timer)
|
||||
tf_trace_counter(task->_trace, "task", sizeof(k_names) / sizeof(*k_names), k_names, values);
|
||||
}
|
||||
|
||||
static void _tf_task_run_jobs_idle(uv_idle_t* idle);
|
||||
static void _tf_task_run_jobs_prepare(uv_prepare_t* prepare);
|
||||
|
||||
static bool _tf_task_run_jobs(tf_task_t* task)
|
||||
{
|
||||
if (JS_IsJobPending(task->_runtime))
|
||||
@ -1653,6 +1661,26 @@ JSValue tf_task_add_import(tf_task_t* task, taskid_t stub_id, exportid_t export_
|
||||
return JS_DupValue(task->_context, function);
|
||||
}
|
||||
|
||||
void tf_task_print(tf_task_t* task, int argc, JSValueConst* argv)
|
||||
{
|
||||
if (task->_parent)
|
||||
{
|
||||
JSValue array = JS_NewArray(task->_context);
|
||||
for (int i = 0; i < argc; i++)
|
||||
{
|
||||
JS_SetPropertyUint32(task->_context, array, i, argv[i]);
|
||||
}
|
||||
|
||||
void* buffer;
|
||||
size_t size;
|
||||
tf_serialize_store(task, task->_parent, &buffer, &size, array);
|
||||
tf_packetstream_send(tf_taskstub_get_stream(task->_parent), kPrint, buffer, size);
|
||||
free(buffer);
|
||||
|
||||
JS_FreeValue(task->_context, array);
|
||||
}
|
||||
}
|
||||
|
||||
tf_task_t* tf_task_get(JSContext* context)
|
||||
{
|
||||
return JS_GetContextOpaque(context);
|
||||
|
Reference in New Issue
Block a user