/test/acorn/tests.js
https://bitbucket.org/cbruno/acorn-objj · JavaScript · 29128 lines · 28525 code · 581 blank · 22 comment · 6 complexity · e3a05b350c184c2285285d00b6c10b79 MD5 · raw file
Large files are truncated click here to view the full file
- // Tests largely based on those of Esprima
- // (http://esprima.org/test/)
- if (typeof exports != "undefined") {
- var driver = require("./driver.js");
- var test = driver.test, testFail = driver.testFail, testAssert = driver.testAssert, misMatch = driver.misMatch;
- var acorn = require("acorn");
- }
- test("this\n", {
- type: "Program",
- body: [
- {
- type: "ExpressionStatement",
- expression: {
- type: "ThisExpression",
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 4
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 4
- }
- }
- }
- ],
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 2,
- column: 0
- }
- }
- });
- test("null\n", {
- type: "Program",
- body: [
- {
- type: "ExpressionStatement",
- expression: {
- type: "Literal",
- value: null,
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 4
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 4
- }
- }
- }
- ],
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 2,
- column: 0
- }
- }
- });
- test("\n 42\n\n", {
- type: "Program",
- body: [
- {
- type: "ExpressionStatement",
- expression: {
- type: "Literal",
- value: 42,
- loc: {
- start: {
- line: 2,
- column: 4
- },
- end: {
- line: 2,
- column: 6
- }
- }
- },
- loc: {
- start: {
- line: 2,
- column: 4
- },
- end: {
- line: 2,
- column: 6
- }
- }
- }
- ],
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 4,
- column: 0
- }
- }
- });
- test("/foobar/", {
- type: "Program",
- body: [
- {
- type: "ExpressionStatement",
- expression: {
- type: "Literal",
- value: /foobar/,
- regex: {
- pattern: "foobar",
- flags: ""
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 8
- }
- }
- }
- }
- ]
- });
- test("/[a-z]/g", {
- type: "Program",
- body: [
- {
- type: "ExpressionStatement",
- expression: {
- type: "Literal",
- value: /[a-z]/g,
- regex: {
- pattern: "[a-z]",
- flags: "g"
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 8
- }
- }
- }
- }
- ]
- });
- test("(1 + 2 ) * 3", {
- type: "Program",
- body: [
- {
- type: "ExpressionStatement",
- expression: {
- type: "BinaryExpression",
- left: {
- type: "BinaryExpression",
- left: {
- type: "Literal",
- value: 1,
- loc: {
- start: {
- line: 1,
- column: 1
- },
- end: {
- line: 1,
- column: 2
- }
- }
- },
- operator: "+",
- right: {
- type: "Literal",
- value: 2,
- loc: {
- start: {
- line: 1,
- column: 5
- },
- end: {
- line: 1,
- column: 6
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 1
- },
- end: {
- line: 1,
- column: 6
- }
- }
- },
- operator: "*",
- right: {
- type: "Literal",
- value: 3,
- loc: {
- start: {
- line: 1,
- column: 11
- },
- end: {
- line: 1,
- column: 12
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 12
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 12
- }
- }
- }
- ],
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 12
- }
- }
- });
- test("(1 + 2 ) * 3", {
- type: "Program",
- body: [
- {
- type: "ExpressionStatement",
- expression: {
- type: "BinaryExpression",
- left: {
- type: "ParenthesizedExpression",
- expression: {
- type: "BinaryExpression",
- left: {
- type: "Literal",
- value: 1,
- loc: {
- start: {
- line: 1,
- column: 1
- },
- end: {
- line: 1,
- column: 2
- }
- }
- },
- operator: "+",
- right: {
- type: "Literal",
- value: 2,
- loc: {
- start: {
- line: 1,
- column: 5
- },
- end: {
- line: 1,
- column: 6
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 1
- },
- end: {
- line: 1,
- column: 6
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 8
- }
- }
- },
- operator: "*",
- right: {
- type: "Literal",
- value: 3,
- loc: {
- start: {
- line: 1,
- column: 11
- },
- end: {
- line: 1,
- column: 12
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 12
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 12
- }
- }
- }
- ],
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 12
- }
- }
- }, {
- locations: true,
- preserveParens: true
- });
- test("(x) = 23", {
- body: [
- {
- expression: {
- operator: "=",
- left: {
- expression: {
- name: "x",
- type: "Identifier",
- },
- type: "ParenthesizedExpression",
- },
- right: {
- value: 23,
- raw: "23",
- type: "Literal",
- },
- type: "AssignmentExpression",
- },
- type: "ExpressionStatement",
- }
- ],
- type: "Program",
- }, {preserveParens: true});
- test("x = []", {
- type: "Program",
- body: [
- {
- type: "ExpressionStatement",
- expression: {
- type: "AssignmentExpression",
- operator: "=",
- left: {
- type: "Identifier",
- name: "x",
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 1
- }
- }
- },
- right: {
- type: "ArrayExpression",
- elements: [],
- loc: {
- start: {
- line: 1,
- column: 4
- },
- end: {
- line: 1,
- column: 6
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 6
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 6
- }
- }
- }
- ],
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 6
- }
- }
- });
- test("x = [ ]", {
- type: "Program",
- body: [
- {
- type: "ExpressionStatement",
- expression: {
- type: "AssignmentExpression",
- operator: "=",
- left: {
- type: "Identifier",
- name: "x",
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 1
- }
- }
- },
- right: {
- type: "ArrayExpression",
- elements: [],
- loc: {
- start: {
- line: 1,
- column: 4
- },
- end: {
- line: 1,
- column: 7
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 7
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 7
- }
- }
- }
- ],
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 7
- }
- }
- });
- test("x = [ 42 ]", {
- type: "Program",
- body: [
- {
- type: "ExpressionStatement",
- expression: {
- type: "AssignmentExpression",
- operator: "=",
- left: {
- type: "Identifier",
- name: "x",
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 1
- }
- }
- },
- right: {
- type: "ArrayExpression",
- elements: [
- {
- type: "Literal",
- value: 42,
- loc: {
- start: {
- line: 1,
- column: 6
- },
- end: {
- line: 1,
- column: 8
- }
- }
- }
- ],
- loc: {
- start: {
- line: 1,
- column: 4
- },
- end: {
- line: 1,
- column: 10
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 10
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 10
- }
- }
- }
- ],
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 10
- }
- }
- });
- test("x = [ 42, ]", {
- type: "Program",
- body: [
- {
- type: "ExpressionStatement",
- expression: {
- type: "AssignmentExpression",
- operator: "=",
- left: {
- type: "Identifier",
- name: "x",
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 1
- }
- }
- },
- right: {
- type: "ArrayExpression",
- elements: [
- {
- type: "Literal",
- value: 42,
- loc: {
- start: {
- line: 1,
- column: 6
- },
- end: {
- line: 1,
- column: 8
- }
- }
- }
- ],
- loc: {
- start: {
- line: 1,
- column: 4
- },
- end: {
- line: 1,
- column: 11
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 11
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 11
- }
- }
- }
- ],
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 11
- }
- }
- });
- test("x = [ ,, 42 ]", {
- type: "Program",
- body: [
- {
- type: "ExpressionStatement",
- expression: {
- type: "AssignmentExpression",
- operator: "=",
- left: {
- type: "Identifier",
- name: "x",
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 1
- }
- }
- },
- right: {
- type: "ArrayExpression",
- elements: [
- null,
- null,
- {
- type: "Literal",
- value: 42,
- loc: {
- start: {
- line: 1,
- column: 9
- },
- end: {
- line: 1,
- column: 11
- }
- }
- }
- ],
- loc: {
- start: {
- line: 1,
- column: 4
- },
- end: {
- line: 1,
- column: 13
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 13
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 13
- }
- }
- }
- ],
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 13
- }
- }
- });
- test("x = [ 1, 2, 3, ]", {
- type: "Program",
- body: [
- {
- type: "ExpressionStatement",
- expression: {
- type: "AssignmentExpression",
- operator: "=",
- left: {
- type: "Identifier",
- name: "x",
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 1
- }
- }
- },
- right: {
- type: "ArrayExpression",
- elements: [
- {
- type: "Literal",
- value: 1,
- loc: {
- start: {
- line: 1,
- column: 6
- },
- end: {
- line: 1,
- column: 7
- }
- }
- },
- {
- type: "Literal",
- value: 2,
- loc: {
- start: {
- line: 1,
- column: 9
- },
- end: {
- line: 1,
- column: 10
- }
- }
- },
- {
- type: "Literal",
- value: 3,
- loc: {
- start: {
- line: 1,
- column: 12
- },
- end: {
- line: 1,
- column: 13
- }
- }
- }
- ],
- loc: {
- start: {
- line: 1,
- column: 4
- },
- end: {
- line: 1,
- column: 16
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 16
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 16
- }
- }
- }
- ],
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 16
- }
- }
- });
- test("x = [ 1, 2,, 3, ]", {
- type: "Program",
- body: [
- {
- type: "ExpressionStatement",
- expression: {
- type: "AssignmentExpression",
- operator: "=",
- left: {
- type: "Identifier",
- name: "x",
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 1
- }
- }
- },
- right: {
- type: "ArrayExpression",
- elements: [
- {
- type: "Literal",
- value: 1,
- loc: {
- start: {
- line: 1,
- column: 6
- },
- end: {
- line: 1,
- column: 7
- }
- }
- },
- {
- type: "Literal",
- value: 2,
- loc: {
- start: {
- line: 1,
- column: 9
- },
- end: {
- line: 1,
- column: 10
- }
- }
- },
- null,
- {
- type: "Literal",
- value: 3,
- loc: {
- start: {
- line: 1,
- column: 13
- },
- end: {
- line: 1,
- column: 14
- }
- }
- }
- ],
- loc: {
- start: {
- line: 1,
- column: 4
- },
- end: {
- line: 1,
- column: 17
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 17
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 17
- }
- }
- }
- ],
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 17
- }
- }
- });
- test("日本語 = []", {
- type: "Program",
- body: [
- {
- type: "ExpressionStatement",
- expression: {
- type: "AssignmentExpression",
- operator: "=",
- left: {
- type: "Identifier",
- name: "日本語",
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 3
- }
- }
- },
- right: {
- type: "ArrayExpression",
- elements: [],
- loc: {
- start: {
- line: 1,
- column: 6
- },
- end: {
- line: 1,
- column: 8
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 8
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 8
- }
- }
- }
- ],
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 8
- }
- }
- });
- test("T‿ = []", {
- type: "Program",
- body: [
- {
- type: "ExpressionStatement",
- expression: {
- type: "AssignmentExpression",
- operator: "=",
- left: {
- type: "Identifier",
- name: "T‿",
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 2
- }
- }
- },
- right: {
- type: "ArrayExpression",
- elements: [],
- loc: {
- start: {
- line: 1,
- column: 5
- },
- end: {
- line: 1,
- column: 7
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 7
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 7
- }
- }
- }
- ],
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 7
- }
- }
- });
- test("T = []", {
- type: "Program",
- body: [
- {
- type: "ExpressionStatement",
- expression: {
- type: "AssignmentExpression",
- operator: "=",
- left: {
- type: "Identifier",
- name: "T",
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 2
- }
- }
- },
- right: {
- type: "ArrayExpression",
- elements: [],
- loc: {
- start: {
- line: 1,
- column: 5
- },
- end: {
- line: 1,
- column: 7
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 7
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 7
- }
- }
- }
- ],
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 7
- }
- }
- });
- test("T = []", {
- type: "Program",
- body: [
- {
- type: "ExpressionStatement",
- expression: {
- type: "AssignmentExpression",
- operator: "=",
- left: {
- type: "Identifier",
- name: "T",
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 2
- }
- }
- },
- right: {
- type: "ArrayExpression",
- elements: [],
- loc: {
- start: {
- line: 1,
- column: 5
- },
- end: {
- line: 1,
- column: 7
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 7
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 7
- }
- }
- }
- ],
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 7
- }
- }
- });
- test("ⅣⅡ = []", {
- type: "Program",
- body: [
- {
- type: "ExpressionStatement",
- expression: {
- type: "AssignmentExpression",
- operator: "=",
- left: {
- type: "Identifier",
- name: "ⅣⅡ",
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 2
- }
- }
- },
- right: {
- type: "ArrayExpression",
- elements: [],
- loc: {
- start: {
- line: 1,
- column: 5
- },
- end: {
- line: 1,
- column: 7
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 7
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 7
- }
- }
- }
- ],
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 7
- }
- }
- });
- test("ⅣⅡ = []", {
- type: "Program",
- body: [
- {
- type: "ExpressionStatement",
- expression: {
- type: "AssignmentExpression",
- operator: "=",
- left: {
- type: "Identifier",
- name: "ⅣⅡ",
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 2
- }
- }
- },
- right: {
- type: "ArrayExpression",
- elements: [],
- loc: {
- start: {
- line: 1,
- column: 5
- },
- end: {
- line: 1,
- column: 7
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 7
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 7
- }
- }
- }
- ],
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 7
- }
- }
- });
- test("x = {}", {
- type: "Program",
- body: [
- {
- type: "ExpressionStatement",
- expression: {
- type: "AssignmentExpression",
- operator: "=",
- left: {
- type: "Identifier",
- name: "x",
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 1
- }
- }
- },
- right: {
- type: "ObjectExpression",
- properties: [],
- loc: {
- start: {
- line: 1,
- column: 4
- },
- end: {
- line: 1,
- column: 6
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 6
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 6
- }
- }
- }
- ],
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 6
- }
- }
- });
- test("x = { }", {
- type: "Program",
- body: [
- {
- type: "ExpressionStatement",
- expression: {
- type: "AssignmentExpression",
- operator: "=",
- left: {
- type: "Identifier",
- name: "x",
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 1
- }
- }
- },
- right: {
- type: "ObjectExpression",
- properties: [],
- loc: {
- start: {
- line: 1,
- column: 4
- },
- end: {
- line: 1,
- column: 7
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 7
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 7
- }
- }
- }
- ],
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 7
- }
- }
- });
- test("x = { answer: 42 }", {
- type: "Program",
- body: [
- {
- type: "ExpressionStatement",
- expression: {
- type: "AssignmentExpression",
- operator: "=",
- left: {
- type: "Identifier",
- name: "x",
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 1
- }
- }
- },
- right: {
- type: "ObjectExpression",
- properties: [
- {
- type: "Property",
- key: {
- type: "Identifier",
- name: "answer",
- loc: {
- start: {
- line: 1,
- column: 6
- },
- end: {
- line: 1,
- column: 12
- }
- }
- },
- value: {
- type: "Literal",
- value: 42,
- loc: {
- start: {
- line: 1,
- column: 14
- },
- end: {
- line: 1,
- column: 16
- }
- }
- },
- kind: "init"
- }
- ],
- loc: {
- start: {
- line: 1,
- column: 4
- },
- end: {
- line: 1,
- column: 18
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 18
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 18
- }
- }
- }
- ],
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 18
- }
- }
- });
- test("x = { if: 42 }", {
- type: "Program",
- body: [
- {
- type: "ExpressionStatement",
- expression: {
- type: "AssignmentExpression",
- operator: "=",
- left: {
- type: "Identifier",
- name: "x",
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 1
- }
- }
- },
- right: {
- type: "ObjectExpression",
- properties: [
- {
- type: "Property",
- key: {
- type: "Identifier",
- name: "if",
- loc: {
- start: {
- line: 1,
- column: 6
- },
- end: {
- line: 1,
- column: 8
- }
- }
- },
- value: {
- type: "Literal",
- value: 42,
- loc: {
- start: {
- line: 1,
- column: 10
- },
- end: {
- line: 1,
- column: 12
- }
- }
- },
- kind: "init"
- }
- ],
- loc: {
- start: {
- line: 1,
- column: 4
- },
- end: {
- line: 1,
- column: 14
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 14
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 14
- }
- }
- }
- ],
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 14
- }
- }
- });
- test("x = { true: 42 }", {
- type: "Program",
- body: [
- {
- type: "ExpressionStatement",
- expression: {
- type: "AssignmentExpression",
- operator: "=",
- left: {
- type: "Identifier",
- name: "x",
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 1
- }
- }
- },
- right: {
- type: "ObjectExpression",
- properties: [
- {
- type: "Property",
- key: {
- type: "Identifier",
- name: "true",
- loc: {
- start: {
- line: 1,
- column: 6
- },
- end: {
- line: 1,
- column: 10
- }
- }
- },
- value: {
- type: "Literal",
- value: 42,
- loc: {
- start: {
- line: 1,
- column: 12
- },
- end: {
- line: 1,
- column: 14
- }
- }
- },
- kind: "init"
- }
- ],
- loc: {
- start: {
- line: 1,
- column: 4
- },
- end: {
- line: 1,
- column: 16
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 16
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 16
- }
- }
- }
- ],
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 16
- }
- }
- });
- test("x = { false: 42 }", {
- type: "Program",
- body: [
- {
- type: "ExpressionStatement",
- expression: {
- type: "AssignmentExpression",
- operator: "=",
- left: {
- type: "Identifier",
- name: "x",
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 1
- }
- }
- },
- right: {
- type: "ObjectExpression",
- properties: [
- {
- type: "Property",
- key: {
- type: "Identifier",
- name: "false",
- loc: {
- start: {
- line: 1,
- column: 6
- },
- end: {
- line: 1,
- column: 11
- }
- }
- },
- value: {
- type: "Literal",
- value: 42,
- loc: {
- start: {
- line: 1,
- column: 13
- },
- end: {
- line: 1,
- column: 15
- }
- }
- },
- kind: "init"
- }
- ],
- loc: {
- start: {
- line: 1,
- column: 4
- },
- end: {
- line: 1,
- column: 17
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 17
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 17
- }
- }
- }
- ],
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 17
- }
- }
- });
- test("x = { null: 42 }", {
- type: "Program",
- body: [
- {
- type: "ExpressionStatement",
- expression: {
- type: "AssignmentExpression",
- operator: "=",
- left: {
- type: "Identifier",
- name: "x",
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 1
- }
- }
- },
- right: {
- type: "ObjectExpression",
- properties: [
- {
- type: "Property",
- key: {
- type: "Identifier",
- name: "null",
- loc: {
- start: {
- line: 1,
- column: 6
- },
- end: {
- line: 1,
- column: 10
- }
- }
- },
- value: {
- type: "Literal",
- value: 42,
- loc: {
- start: {
- line: 1,
- column: 12
- },
- end: {
- line: 1,
- column: 14
- }
- }
- },
- kind: "init"
- }
- ],
- loc: {
- start: {
- line: 1,
- column: 4
- },
- end: {
- line: 1,
- column: 16
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 16
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 16
- }
- }
- }
- ],
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 16
- }
- }
- });
- test("x = { \"answer\": 42 }", {
- type: "Program",
- body: [
- {
- type: "ExpressionStatement",
- expression: {
- type: "AssignmentExpression",
- operator: "=",
- left: {
- type: "Identifier",
- name: "x",
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 1
- }
- }
- },
- right: {
- type: "ObjectExpression",
- properties: [
- {
- type: "Property",
- key: {
- type: "Literal",
- value: "answer",
- loc: {
- start: {
- line: 1,
- column: 6
- },
- end: {
- line: 1,
- column: 14
- }
- }
- },
- value: {
- type: "Literal",
- value: 42,
- loc: {
- start: {
- line: 1,
- column: 16
- },
- end: {
- line: 1,
- column: 18
- }
- }
- },
- kind: "init"
- }
- ],
- loc: {
- start: {
- line: 1,
- column: 4
- },
- end: {
- line: 1,
- column: 20
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 20
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 20
- }
- }
- }
- ],
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 20
- }
- }
- });
- test("x = { x: 1, x: 2 }", {
- type: "Program",
- body: [
- {
- type: "ExpressionStatement",
- expression: {
- type: "AssignmentExpression",
- operator: "=",
- left: {
- type: "Identifier",
- name: "x",
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 1
- }
- }
- },
- right: {
- type: "ObjectExpression",
- properties: [
- {
- type: "Property",
- key: {
- type: "Identifier",
- name: "x",
- loc: {
- start: {
- line: 1,
- column: 6
- },
- end: {
- line: 1,
- column: 7
- }
- }
- },
- value: {
- type: "Literal",
- value: 1,
- loc: {
- start: {
- line: 1,
- column: 9
- },
- end: {
- line: 1,
- column: 10
- }
- }
- },
- kind: "init"
- },
- {
- type: "Property",
- key: {
- type: "Identifier",
- name: "x",
- loc: {
- start: {
- line: 1,
- column: 12
- },
- end: {
- line: 1,
- column: 13
- }
- }
- },
- value: {
- type: "Literal",
- value: 2,
- loc: {
- start: {
- line: 1,
- column: 15
- },
- end: {
- line: 1,
- column: 16
- }
- }
- },
- kind: "init"
- }
- ],
- loc: {
- start: {
- line: 1,
- column: 4
- },
- end: {
- line: 1,
- column: 18
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 18
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 18
- }
- }
- }
- ],
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 18
- }
- }
- });
- test("x = { get width() { return m_width } }", {
- type: "Program",
- body: [
- {
- type: "ExpressionStatement",
- expression: {
- type: "AssignmentExpression",
- operator: "=",
- left: {
- type: "Identifier",
- name: "x",
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 1
- }
- }
- },
- right: {
- type: "ObjectExpression",
- properties: [
- {
- type: "Property",
- key: {
- type: "Identifier",
- name: "width",
- loc: {
- start: {
- line: 1,
- column: 10
- },
- end: {
- line: 1,
- column: 15
- }
- }
- },
- kind: "get",
- value: {
- type: "FunctionExpression",
- id: null,
- params: [],
- body: {
- type: "BlockStatement",
- body: [
- {
- type: "ReturnStatement",
- argument: {
- type: "Identifier",
- name: "m_width",
- loc: {
- start: {
- line: 1,
- column: 27
- },
- end: {
- line: 1,
- column: 34
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 20
- },
- end: {
- line: 1,
- column: 34
- }
- }
- }
- ],
- loc: {
- start: {
- line: 1,
- column: 18
- },
- end: {
- line: 1,
- column: 36
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 15
- },
- end: {
- line: 1,
- column: 36
- }
- }
- }
- }
- ],
- loc: {
- start: {
- line: 1,
- column: 4
- },
- end: {
- line: 1,
- column: 38
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 38
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 38
- }
- }
- }
- ],
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 38
- }
- }
- });
- test("x = { get undef() {} }", {
- type: "Program",
- body: [
- {
- type: "ExpressionStatement",
- expression: {
- type: "AssignmentExpression",
- operator: "=",
- left: {
- type: "Identifier",
- name: "x",
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 1
- }
- }
- },
- right: {
- type: "ObjectExpression",
- properties: [
- {
- type: "Property",
- key: {
- type: "Identifier",
- name: "undef",
- loc: {
- start: {
- line: 1,
- column: 10
- },
- end: {
- line: 1,
- column: 15
- }
- }
- },
- kind: "get",
- value: {
- type: "FunctionExpression",
- id: null,
- params: [],
- body: {
- type: "BlockStatement",
- body: [],
- loc: {
- start: {
- line: 1,
- column: 18
- },
- end: {
- line: 1,
- column: 20
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 15
- },
- end: {
- line: 1,
- column: 20
- }
- }
- }
- }
- ],
- loc: {
- start: {
- line: 1,
- column: 4
- },
- end: {
- line: 1,
- column: 22
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 22
- }
- }
- },
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 22
- }
- }
- }
- ],
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 22
- }
- }
- });
- test("x = { get if() {} }", {
- type: "Program",
- body: [
- {
- type: "ExpressionStatement",
- expression: {
- type: "AssignmentExpression",
- operator: "=",
- left: {
- type: "Identifier",
- name: "x",
- loc: {
- start: {
- line: 1,
- column: 0
- },
- end: {
- line: 1,
- column: 1
- }
- }
- },
- right: {
- type: "ObjectExpression",
- properties: [
- {
- type: "Property",
- key: {
- type: "Identifier",
- name: "if",
- loc: {
- start: {
- line: 1,
- column: 10
- },
- end: {
- line: 1,
- column: 12
- }
- }
- },
- kind: "get",
- value: {
- type: "FunctionExpression",
- id: null,
- params: [],
- body: {
- type: "BlockStatement",
- body: [],
- loc: {
- s…