Get the wasm build working w/ latest emscripten

This commit is contained in:
Max Brunsfeld 2020-11-30 14:28:27 -08:00
parent 53949b09fd
commit a2d6048226
3 changed files with 19 additions and 12 deletions

View file

@ -115,18 +115,10 @@ extern void tree_sitter_parse_callback(
);
extern void tree_sitter_log_callback(
void *payload,
TSLogType log_type,
bool is_lex_message,
const char *message
);
void ts_parser_new_wasm() {
TSParser *parser = ts_parser_new();
char *input_buffer = calloc(INPUT_BUFFER_SIZE, sizeof(char));
TRANSFER_BUFFER[0] = parser;
TRANSFER_BUFFER[1] = input_buffer;
}
static const char *call_parse_callback(
void *payload,
uint32_t byte,
@ -148,8 +140,23 @@ static const char *call_parse_callback(
return buffer;
}
static void call_log_callback(
void *payload,
TSLogType log_type,
const char *message
) {
tree_sitter_log_callback(log_type == TSLogTypeLex, message);
}
void ts_parser_new_wasm() {
TSParser *parser = ts_parser_new();
char *input_buffer = calloc(INPUT_BUFFER_SIZE, sizeof(char));
TRANSFER_BUFFER[0] = parser;
TRANSFER_BUFFER[1] = input_buffer;
}
void ts_parser_enable_logger_wasm(TSParser *self, bool should_log) {
TSLogger logger = {self, should_log ? tree_sitter_log_callback : NULL};
TSLogger logger = {self, should_log ? call_log_callback : NULL};
ts_parser_set_logger(self, logger);
}

View file

@ -880,7 +880,7 @@ class Language {
}
return bytes
.then(bytes => loadWebAssemblyModule(bytes, {loadAsync: true}))
.then(bytes => loadSideModule(bytes, {loadAsync: true}))
.then(mod => {
const symbolNames = Object.keys(mod)
const functionName = symbolNames.find(key =>

View file

@ -16,7 +16,7 @@ mergeInto(LibraryManager.library, {
}
},
tree_sitter_log_callback: function(_payload, isLexMessage, messageAddress) {
tree_sitter_log_callback: function(isLexMessage, messageAddress) {
if (currentLogCallback) {
const message = UTF8ToString(messageAddress);
currentLogCallback(message, isLexMessage !== 0);