mirror of
https://github.com/google/pebble.git
synced 2025-07-05 14:20:30 -04:00
Import of the watch repository from Pebble
This commit is contained in:
commit
3b92768480
10334 changed files with 2564465 additions and 0 deletions
70
third_party/jerryscript/js_tooling/js_tooling_port.c
vendored
Normal file
70
third_party/jerryscript/js_tooling/js_tooling_port.c
vendored
Normal file
|
@ -0,0 +1,70 @@
|
|||
#include "jerry-api.h"
|
||||
#include "jerry-port.h"
|
||||
#include "jcontext.h"
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
jerry_context_t jerry_global_context;
|
||||
jmem_heap_t jerry_global_heap __attribute__((__aligned__(JMEM_ALIGNMENT)));
|
||||
jerry_hash_table_t jerry_global_hash_table;
|
||||
|
||||
size_t jerry_parse_and_save_snapshot_from_zt_utf8_string(
|
||||
const jerry_char_t *zt_utf8_source_p,
|
||||
bool is_for_global, bool is_strict,
|
||||
uint8_t *buffer_p, size_t buffer_size) {
|
||||
return jerry_parse_and_save_snapshot(
|
||||
zt_utf8_source_p, strlen((char *)zt_utf8_source_p),
|
||||
is_for_global, is_strict,
|
||||
buffer_p, buffer_size);
|
||||
}
|
||||
|
||||
// helper routine to create proper snapshot header from js_tooling
|
||||
size_t rocky_fill_header(uint8_t *buffer, size_t buffer_size) {
|
||||
const uint8_t ROCKY_EXPECTED_SNAPSHOT_HEADER[8] = {'P', 'J', 'S', 0, CAPABILITY_JAVASCRIPT_BYTECODE_VERSION, 0, 0, 0};
|
||||
const size_t ROCKY_HEADER_SIZE = sizeof(ROCKY_EXPECTED_SNAPSHOT_HEADER);
|
||||
if (buffer == NULL || buffer_size < ROCKY_HEADER_SIZE) {
|
||||
return 0;
|
||||
}
|
||||
memcpy(buffer, ROCKY_EXPECTED_SNAPSHOT_HEADER, ROCKY_HEADER_SIZE);
|
||||
return ROCKY_HEADER_SIZE;
|
||||
}
|
||||
|
||||
int test_str_len(char * str) {
|
||||
return strlen(str);
|
||||
}
|
||||
|
||||
// return true, if you handled the error message
|
||||
typedef bool (*JerryPortErrorMsgHandler)(char *msg);
|
||||
static JerryPortErrorMsgHandler s_jerry_port_errormsg_handler;
|
||||
|
||||
void jerry_port_set_errormsg_handler(JerryPortErrorMsgHandler handler) {
|
||||
s_jerry_port_errormsg_handler = handler;
|
||||
}
|
||||
|
||||
static void prv_log(const char *format, va_list args) {
|
||||
char msg[1024] = {0};
|
||||
const int result = vsnprintf(msg, sizeof(msg), format, args);
|
||||
if (s_jerry_port_errormsg_handler == NULL || !s_jerry_port_errormsg_handler(msg)) {
|
||||
printf("%s", msg);
|
||||
}
|
||||
}
|
||||
|
||||
void jerry_port_log(jerry_log_level_t level, const char* format, ...) {
|
||||
va_list args;
|
||||
va_start(args, format);
|
||||
prv_log(format, args);
|
||||
va_end(args);
|
||||
}
|
||||
|
||||
void jerry_port_console(const char *format, ...) {
|
||||
if (format[0] == '\n' && strlen(format) == 1) {
|
||||
return;
|
||||
}
|
||||
va_list args;
|
||||
va_start(args, format);
|
||||
prv_log(format, args);
|
||||
va_end(args);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue