NOLINTNEXTLINE(readability-non-const-parameter)
| 209 | |
| 210 | // NOLINTNEXTLINE(readability-non-const-parameter) |
| 211 | static 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 | |
| 247 | static tsn_value tsn_require_absolute(tsn_vm* ctx, tsn_value_const /*this_val*/, int argc, tsn_value_const* argv) { |
| 248 | if (argc < 1) { |
no test coverage detected