nashorn/test/script/nosecurity/parservisitor.js
author sundar
Tue, 12 Jul 2016 21:18:13 +0530
changeset 39662 e2b36a3779b9
parent 29407 3fd4ede1581e
permissions -rw-r--r--
8149929: Nashorn Parser API needs to be updated for ES6 Reviewed-by: mhaupt, hannesw
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
29407
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
     1
/*
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
     2
 * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
     4
 * 
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
     7
 * published by the Free Software Foundation.
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
     8
 * 
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
     9
 * This code is distributed in the hope that it will be useful, but WITHOUT
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    11
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    12
 * version 2 for more details (a copy is included in the LICENSE file that
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    13
 * accompanied this code).
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    14
 * 
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License version
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    16
 * 2 along with this work; if not, write to the Free Software Foundation,
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    17
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    18
 * 
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    19
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    20
 * or visit www.oracle.com if you need additional information or have any
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    21
 * questions.
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    22
 */
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    23
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    24
/**
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    25
 * Nashorn parser API - Basic TreeVisitor tests.
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    26
 *
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    27
 * @test
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    28
 * @option -scripting
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    29
 * @run
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    30
 */
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    31
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    32
// Java types used
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    33
var SimpleTreeVisitor = Java.type("jdk.nashorn.api.tree.SimpleTreeVisitorES5_1");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    34
var Parser = Java.type("jdk.nashorn.api.tree.Parser");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    35
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    36
function parse(name, script, visitor) {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    37
    var parser = Parser.create("--empty-statements");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    38
    var tree = parser.parse(name, script, null);
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    39
    return tree.accept(visitor, print);
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    40
}
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    41
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    42
parse("arrayaccess.js", "this['eval']",
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    43
    new (Java.extend(SimpleTreeVisitor))() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    44
        visitArrayAccess: function(aa) {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    45
            print("in visitArrayAccess " +
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    46
              aa.expression.name + " " + aa.index.value);
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    47
        }
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    48
    });
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    49
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    50
parse("arrayliteral.js", "[2, 3, 22]",
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    51
    new (Java.extend(SimpleTreeVisitor))() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    52
        visitArrayLiteral: function(al) {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    53
            print("in visitArrayLiteral");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    54
            for each (var e in al.elements) {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    55
               print(e.value);
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    56
            }
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    57
        }
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    58
    });
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    59
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    60
parse("assign.js", "x = 33",
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    61
    new (Java.extend(SimpleTreeVisitor))() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    62
        visitAssignment: function(an) {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    63
            print("in visitAssignment " +
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    64
                an.variable.name + " " + an.expression.value);
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    65
        }
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    66
    });
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    67
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    68
function binaryExpr(name, code) {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    69
    parse(name, code, 
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    70
        new (Java.extend(SimpleTreeVisitor))() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    71
            visitBinary: function(bn) {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    72
                print("in visitBinary " + bn.kind + " " +
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    73
                    bn.leftOperand.value + ", " + bn.rightOperand.value);
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    74
            }
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    75
        });
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    76
}
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    77
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    78
binaryExpr("add.js", "3 + 4");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    79
binaryExpr("sub.js", "3 - 4");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    80
binaryExpr("mul.js", "3 * 4");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    81
binaryExpr("div.js", "3 / 4");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    82
binaryExpr("rem.js", "3 % 4");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    83
binaryExpr("rshift.js", "3 >> 4");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    84
binaryExpr("rshift.js", "3 >>> 4");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    85
binaryExpr("lshift.js", "3 << 4");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    86
binaryExpr("less.js", "3 < 4");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    87
binaryExpr("lessOrEq.js", "3 <= 4");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    88
binaryExpr("greater.js", "3 > 4");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    89
binaryExpr("greaterOrEq.js", "3 >= 4");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    90
binaryExpr("in.js", "3 in this");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    91
binaryExpr("eq.js", "3 == 3");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    92
binaryExpr("ne.js", "3 != 2");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    93
binaryExpr("seq.js", "3 === 2");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    94
binaryExpr("sne.js", "3 !== 2");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    95
binaryExpr("and.js", "3 & 2");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    96
binaryExpr("or.js", "3 | 2");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    97
binaryExpr("xor.js", "3 ^ 2");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    98
binaryExpr("cond_and.js", "3 && 2");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
    99
binaryExpr("cond_or.js", "3 || 2");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   100
binaryExpr("comma", "3, 2");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   101
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   102
parse("block.js", "{ print('hello'); }", 
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   103
    new (Java.extend(SimpleTreeVisitor))() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   104
        visitBlock: function() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   105
            print("in visitBlock");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   106
        }
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   107
    });
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   108
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   109
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   110
parse("break.js", "while(true) { break; }", 
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   111
    new (Java.extend(SimpleTreeVisitor))() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   112
        visitBreak: function() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   113
            print("in visitBreak");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   114
        }
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   115
    });
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   116
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   117
function compAssignExpr(name, code) {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   118
    parse(name, code, 
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   119
        new (Java.extend(SimpleTreeVisitor))() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   120
            visitCompoundAssignment: function(bn) {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   121
                print("in visitCompoundAssignment " + bn.kind + " " +
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   122
                  bn.variable.name + " " + bn.expression.value);
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   123
            }
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   124
        });
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   125
}
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   126
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   127
compAssignExpr("mult_assign.js", "x *= 3");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   128
compAssignExpr("div_assign.js", "x /= 3");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   129
compAssignExpr("rem_assign.js", "x %= 3");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   130
compAssignExpr("add_assign.js", "x += 3");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   131
compAssignExpr("sub_assign.js", "x -= 3");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   132
compAssignExpr("lshift_assign.js", "x <<= 3");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   133
compAssignExpr("rshift_assign.js", "x >>= 3");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   134
compAssignExpr("urshift_assign.js", "x >>>= 3");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   135
compAssignExpr("and_assign.js", "x &= 3");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   136
compAssignExpr("xor_assign.js", "x ^= 3");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   137
compAssignExpr("or_assign.js", "x |= 3");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   138
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   139
parse("condexpr.js", "foo? x : y", 
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   140
    new (Java.extend(SimpleTreeVisitor))() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   141
        visitConditionalExpression: function() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   142
            print("in visitConditionalExpression");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   143
        }
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   144
    });
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   145
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   146
parse("continue.js", "while(true) { continue; }", 
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   147
    new (Java.extend(SimpleTreeVisitor))() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   148
        visitContinue: function() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   149
            print("in visitContinue");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   150
        }
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   151
    });
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   152
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   153
parse("debugger.js", "debugger;", 
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   154
    new (Java.extend(SimpleTreeVisitor))() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   155
        visitDebugger: function() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   156
            print("in visitDebugger");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   157
        }
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   158
    });
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   159
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   160
parse("dowhile.js", "do {} while(true)", 
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   161
    new (Java.extend(SimpleTreeVisitor))() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   162
        visitDoWhileLoop: function() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   163
            print("in visitDoWhileLoop");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   164
        }
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   165
    });
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   166
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   167
parse("empty.js", ";", 
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   168
    new (Java.extend(SimpleTreeVisitor))() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   169
        visitEmptyStatement: function() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   170
            print("in visitEmptyStatement");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   171
        }
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   172
    });
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   173
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   174
parse("exprstat.js", "2+3;", 
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   175
    new (Java.extend(SimpleTreeVisitor))() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   176
        visitExpressionStatement: function() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   177
            print("in visitExpressionStatement");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   178
        }
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   179
    });
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   180
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   181
parse("forin.js", "for(i in this) {}", 
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   182
    new (Java.extend(SimpleTreeVisitor))() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   183
        visitForInLoop: function() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   184
            print("in visitForInLoop");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   185
        }
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   186
    });
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   187
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   188
parse("for.js", "for(;;) {}", 
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   189
    new (Java.extend(SimpleTreeVisitor))() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   190
        visitForLoop: function() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   191
            print("in visitForLoop");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   192
        }
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   193
    });
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   194
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   195
parse("funccall.js", "func()", 
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   196
    new (Java.extend(SimpleTreeVisitor))() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   197
        visitFunctionCall: function(fc) {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   198
            print("in visitFunctionCall " + fc.functionSelect.name);
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   199
        }
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   200
    });
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   201
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   202
parse("funcdecl.js", "function func() {}", 
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   203
    new (Java.extend(SimpleTreeVisitor))() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   204
        visitFunctionDeclaration: function(fd) {
39662
e2b36a3779b9 8149929: Nashorn Parser API needs to be updated for ES6
sundar
parents: 29407
diff changeset
   205
            print("in visitFunctionDeclaration " + fd.name.name);
29407
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   206
        }
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   207
    });
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   208
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   209
parse("funcexpr.js", "x = function() {}", 
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   210
    new (Java.extend(SimpleTreeVisitor))() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   211
        visitFunctionExpression: function() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   212
            print("in visitFunctionExpression");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   213
        }
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   214
    });
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   215
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   216
parse("ident.js", "this", 
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   217
    new (Java.extend(SimpleTreeVisitor))() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   218
        visitIdentifier: function(ident) {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   219
            print("in visitIdentifier " + ident.name);
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   220
        }
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   221
    });
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   222
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   223
parse("if.js", "if (true) {}", 
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   224
    new (Java.extend(SimpleTreeVisitor))() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   225
        visitIf: function() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   226
            print("in visitIf");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   227
        }
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   228
    });
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   229
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   230
parse("if2.js", "if (true) print('yes')", 
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   231
    new (visitor = Java.extend(SimpleTreeVisitor))() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   232
        visitBlock: function(node, extra) {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   233
            print("ERROR: No block expected here!");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   234
            Error.dumpStack();
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   235
        }
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   236
    });
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   237
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   238
parse("instanceof.js", "this instanceof Object", 
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   239
    new (Java.extend(SimpleTreeVisitor))() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   240
        visitInstanceOf: function() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   241
            print("in visitInstanceOf");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   242
        }
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   243
    });
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   244
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   245
parse("labeled.js", "foo: print('hello');", 
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   246
    new (Java.extend(SimpleTreeVisitor))() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   247
        visitLabeledStatement: function() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   248
            print("in visitLabeledStatement");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   249
        }
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   250
    });
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   251
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   252
function literalExpr(name, code) {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   253
    parse(name, code, 
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   254
        new (Java.extend(SimpleTreeVisitor))() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   255
            visitLiteral: function(ln) {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   256
                print("in visitLiteral " + ln.kind + " " + ln.value);
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   257
            }
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   258
        });
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   259
}
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   260
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   261
literalExpr("bool.js", "true");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   262
literalExpr("num.js", "3.14");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   263
literalExpr("str.js", "'hello'");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   264
literalExpr("null.js", "null");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   265
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   266
parse("memselect.js", "this.foo", 
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   267
    new (Java.extend(SimpleTreeVisitor))() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   268
        visitMemberSelect: function(ms) {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   269
            print("in visitMemberSelect " + ms.identifier);
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   270
        }
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   271
    });
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   272
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   273
parse("new.js", "new Object()", 
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   274
    new (Java.extend(SimpleTreeVisitor))() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   275
        visitNew: function() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   276
            print("in visitNew");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   277
        }
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   278
    });
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   279
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   280
parse("obj_literal.js", "({ foo: 343 })", 
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   281
    visitor = new (Java.extend(SimpleTreeVisitor))() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   282
        visitObjectLiteral: function(ol) {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   283
            print("in visitObjectLiteral");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   284
            Java.super(visitor).visitObjectLiteral(ol, null);
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   285
        },
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   286
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   287
        visitProperty: function(pn) {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   288
            print("in visitProperty " + pn.key.name);
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   289
        }
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   290
    });
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   291
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   292
parse("regexp.js", "/[a-b]/i", 
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   293
    new (Java.extend(SimpleTreeVisitor))() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   294
        visitRegExpLiteral: function(re) {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   295
            print("in visitRegExpLiteral " + re.pattern + " " + re.options);
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   296
        }
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   297
    });
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   298
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   299
parse("ret.js", "function func() { return 33 }", 
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   300
    new (Java.extend(SimpleTreeVisitor))() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   301
        visitReturn: function(ret) {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   302
            print("in visitReturn " + ret.expression.value);
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   303
        }
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   304
    });
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   305
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   306
parse("switch.js", "switch(c) { case '1': break; default: }", 
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   307
    visitor = new (Java.extend(SimpleTreeVisitor))() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   308
        visitSwitch: function(sn) {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   309
            print("in visitSwitch");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   310
            Java.super(visitor).visitSwitch(sn, null);
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   311
        },
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   312
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   313
        visitCase: function(cn) {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   314
            if (cn.expression) {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   315
                print("in visitCase");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   316
            } else {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   317
                print("in visitCase (default)");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   318
            }
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   319
        }
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   320
    });
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   321
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   322
parse("throw.js", "throw 2", 
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   323
    new (Java.extend(SimpleTreeVisitor))() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   324
        visitThrow: function(tn) {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   325
            print("in visitThrow " + tn.expression.value);
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   326
        }
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   327
    });
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   328
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   329
parse("try.js", "try { func() } catch(e) {}", 
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   330
    visitor = new (Java.extend(SimpleTreeVisitor))() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   331
        visitTry: function(tn) {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   332
            print("in visitTry");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   333
            Java.super(visitor).visitTry(tn, null);
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   334
        },
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   335
        visitCatch: function(cn) {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   336
            print("in visitCatch " + cn.parameter.name);
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   337
        }
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   338
    });
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   339
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   340
function unaryExpr(name, code) {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   341
    parse(name, code, 
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   342
        new (Java.extend(SimpleTreeVisitor))() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   343
            visitUnary: function(un) {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   344
                print("in visitUnary " + un.kind + " " + un.expression.name);
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   345
            }
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   346
        });
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   347
}
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   348
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   349
unaryExpr("postincr.js", "x++");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   350
unaryExpr("postdecr.js", "x--");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   351
unaryExpr("preincr.js", "++x");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   352
unaryExpr("predecr.js", "--x");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   353
unaryExpr("plus.js", "+x");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   354
unaryExpr("minus.js", "-x");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   355
unaryExpr("complement.js", "~x");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   356
unaryExpr("logical_compl.js", "!x");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   357
unaryExpr("delete.js", "delete x");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   358
unaryExpr("typeof.js", "typeof x");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   359
unaryExpr("void.js", "void x");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   360
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   361
parse("var.js", "var x = 34;", 
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   362
    new (Java.extend(SimpleTreeVisitor))() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   363
        visitVariable: function(vn) {
39662
e2b36a3779b9 8149929: Nashorn Parser API needs to be updated for ES6
sundar
parents: 29407
diff changeset
   364
            print("in visitVariable " + vn.binding.name + " = " + vn.initializer.value);
29407
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   365
        }
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   366
    });
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   367
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   368
parse("while.js", "while(true) {}", 
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   369
    new (Java.extend(SimpleTreeVisitor))() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   370
        visitWhileLoop: function() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   371
            print("in visitWhileLoop");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   372
        }
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   373
    });
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   374
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   375
parse("with.js", "with({}) {}", 
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   376
    new (Java.extend(SimpleTreeVisitor))() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   377
        visitWith: function() {
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   378
            print("in visitWith");
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   379
        }
3fd4ede1581e 8074671: Nashorn Parser API
sundar
parents:
diff changeset
   380
    });