fix(web): correct childWithDescendant() functionality
This fix allows for more granular address control when marshalling nodes
across WASM. This is necessary for node methods which accept another
node as a parameter (i.e., `childWithDescendant()`)
(cherry picked from commit 21390af2dd)
This commit is contained in:
parent
62cc419262
commit
20a5d46b50
4 changed files with 30 additions and 10 deletions
|
|
@ -189,6 +189,21 @@ describe('Node', () => {
|
|||
});
|
||||
});
|
||||
|
||||
describe('.childWithDescendant()', () => {
|
||||
it('correctly retrieves immediate children', () => {
|
||||
const sourceCode = 'let x = 1; console.log(x);';
|
||||
tree = parser.parse(sourceCode)!;
|
||||
const root = tree.rootNode
|
||||
const child = root.children[0].children[0]
|
||||
const a = root.childWithDescendant(child)
|
||||
expect(a!.startIndex).toBe(0)
|
||||
const b = a!.childWithDescendant(child)
|
||||
expect(b).toEqual(child)
|
||||
const c = b!.childWithDescendant(child)
|
||||
expect(c).toBeNull()
|
||||
});
|
||||
});
|
||||
|
||||
describe('.nextSibling and .previousSibling', () => {
|
||||
it('returns the node\'s next and previous sibling', () => {
|
||||
tree = parser.parse('x10 + 1000')!;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue