MCPcopy Create free account
hub / github.com/Snapchat/Valdi / tsn_print

Function tsn_print

tsn/src/tsn/tsn.cpp:211–245  ·  view source on GitHub ↗

NOLINTNEXTLINE(readability-non-const-parameter)

Source from the content-addressed store, hash-verified

209
210// NOLINTNEXTLINE(readability-non-const-parameter)
211static tsn_value tsn_print(tsn_vm* ctx, tsn_value_const /*this_val*/, int argc, tsn_value_const* argv) {
212 int i;
213 const char* str;
214 size_t len;
215
216 auto global = JS_GetGlobalObject(ctx);
217 auto json = JS_GetPropertyStr(ctx, global, "JSON");
218 auto stringify = JS_GetPropertyStr(ctx, json, "stringify");
219
220 for (i = 0; i < argc; i++) {
221 JSValue printVal;
222 JSValue arg = argv[i];
223 if (JS_IsObject(arg) != 0 && JS_IsFunction(ctx, arg) == 0) {
224 printVal = JS_CallInternal_tsn(ctx, stringify, json, JS_UNDEFINED, 1, (tsn_value[]){arg}, 0);
225 } else {
226 printVal = JS_ToString(ctx, arg);
227 }
228
229 if (i != 0)
230 putchar(' ');
231 str = JS_ToCStringLen(ctx, &len, printVal);
232 if (!str)
233 return JS_EXCEPTION;
234 fwrite(str, 1, len, stdout);
235 JS_FreeCString(ctx, str);
236 JS_FreeValue(ctx, printVal);
237 }
238 putchar('\n');
239
240 JS_FreeValue(ctx, global);
241 JS_FreeValue(ctx, json);
242 JS_FreeValue(ctx, stringify);
243
244 return tsn_undefined(ctx);
245}
246
247static tsn_value tsn_require_absolute(tsn_vm* ctx, tsn_value_const /*this_val*/, int argc, tsn_value_const* argv) {
248 if (argc < 1) {

Callers 1

tsn_debugFunction · 0.85

Calls 4

JS_IsObjectFunction · 0.85
JS_ToCStringLenFunction · 0.85
JS_FreeValueFunction · 0.85
tsn_undefinedFunction · 0.85

Tested by

no test coverage detected