summaryrefslogtreecommitdiffstats
path: root/js/src/tests/non262/pipeline/reflect-parse.js
blob: 247f6657b7399924283989c4aa6bb6f7d0435017 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
const BUGNUMBER = 1405943;
const summary = "Implement pipeline operator (Reflect.parse)";

print(BUGNUMBER + ": " + summary);

if (hasPipeline()) {
    if (typeof Reflect !== "undefined" && Reflect.parse) {
        const parseTree1 = Reflect.parse("a |> b");
        assertEq(parseTree1.body[0].type, "ExpressionStatement");
        assertEq(parseTree1.body[0].expression.type, "BinaryExpression");
        assertEq(parseTree1.body[0].expression.operator, "|>");
        assertEq(parseTree1.body[0].expression.left.name, "a");
        assertEq(parseTree1.body[0].expression.right.name, "b");

        const parseTree2 = Reflect.parse("a |> b |> c");
        assertEq(parseTree2.body[0].type, "ExpressionStatement");
        assertEq(parseTree2.body[0].expression.type, "BinaryExpression");
        assertEq(parseTree2.body[0].expression.operator, "|>");
        assertEq(parseTree2.body[0].expression.left.type, "BinaryExpression");
        assertEq(parseTree2.body[0].expression.left.operator, "|>");
        assertEq(parseTree2.body[0].expression.left.left.name, "a");
        assertEq(parseTree2.body[0].expression.left.right.name, "b");
        assertEq(parseTree2.body[0].expression.right.name, "c");
    }
}

if (typeof reportCompare === "function")
    reportCompare(0, 0);