Include ts_tree_copy in wasm build

Fixes #846
This commit is contained in:
Max Brunsfeld 2020-12-11 13:47:20 -08:00
parent ee1159d009
commit 0f492e4254
2 changed files with 26 additions and 0 deletions

View file

@ -79,6 +79,7 @@
"_ts_query_predicates_for_pattern",
"_ts_query_string_count",
"_ts_query_string_value_for_id",
"_ts_tree_copy",
"_ts_tree_cursor_current_field_id_wasm",
"_ts_tree_cursor_current_node_id_wasm",
"_ts_tree_cursor_current_node_is_missing_wasm",

View file

@ -323,6 +323,31 @@ describe("Tree", () => {
assert(!cursor.gotoParent());
})
});
describe(".copy", () => {
it("creates another tree that remains stable if the original tree is edited", () => {
input = 'abc + cde';
tree = parser.parse(input);
assert.equal(
tree.rootNode.toString(),
"(program (expression_statement (binary_expression left: (identifier) right: (identifier))))"
);
const tree2 = tree.copy();
([input, edit] = spliceInput(input, 3, 0, '123'));
assert.equal(input, 'abc123 + cde');
tree.edit(edit);
const leftNode = tree.rootNode.firstChild.firstChild.firstChild;
const leftNode2 = tree2.rootNode.firstChild.firstChild.firstChild;
const rightNode = tree.rootNode.firstChild.firstChild.lastChild;
const rightNode2 = tree2.rootNode.firstChild.firstChild.lastChild;
assert.equal(leftNode.endIndex, 6)
assert.equal(leftNode2.endIndex, 3)
assert.equal(rightNode.startIndex, 9)
assert.equal(rightNode2.startIndex, 6)
});
});
});
function spliceInput(input, startIndex, lengthRemoved, newText) {