Merge pull request #268 from ariya/no-moz
Don't test esprima-moz anymore.
diff --git a/package.json b/package.json
index 852608e..ef4e37f 100644
--- a/package.json
+++ b/package.json
@@ -45,7 +45,6 @@
"bower-registry-client": "^0.2.1",
"chai": "^1.10.0",
"commonjs-everywhere": "^0.9.7",
- "esprima-moz": "1.0.0-dev-harmony-moz",
"gulp": "^3.8.10",
"gulp-eslint": "^0.2.0",
"gulp-mocha": "^2.0.0",
diff --git a/test/moz.js b/test/moz.js
deleted file mode 100644
index 0b8aeff..0000000
--- a/test/moz.js
+++ /dev/null
@@ -1,1276 +0,0 @@
-/*
- Copyright (C) 2011-2013 Yusuke Suzuki <utatane.tea@gmail.com>
- Copyright (C) 2012 Ariya Hidayat <ariya.hidayat@gmail.com>
- Copyright (C) 2012 Joost-Wim Boekesteijn <joost-wim@boekesteijn.nl>
- Copyright (C) 2012 Yusuke Suzuki <utatane.tea@gmail.com>
- Copyright (C) 2012 Arpad Borsos <arpad.borsos@googlemail.com>
- Copyright (C) 2011 Ariya Hidayat <ariya.hidayat@gmail.com>
- Copyright (C) 2011 Arpad Borsos <arpad.borsos@googlemail.com>
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
- DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-'use strict';
-
-var esprima = require('esprima-moz'),
- escodegen = require('./loader'),
- chai = require('chai'),
- expect = chai.expect,
- data;
-
-data = {
- 'Yield with starless generator': {
- 'function a() { yield* test; }': {
- type: 'Program',
- body: [{
- type: 'FunctionDeclaration',
- id: {
- type: 'Identifier',
- name: 'a',
- range: [10, 11],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 11 }
- }
- },
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'YieldExpression',
- argument: {
- type: 'Identifier',
- name: 'test',
- range: [23, 27],
- loc: {
- start: { line: 1, column: 23 },
- end: { line: 1, column: 27 }
- }
- },
- delegate: true,
- range: [16, 27],
- loc: {
- start: { line: 1, column: 16 },
- end: { line: 1, column: 27 }
- }
- },
- range: [16, 28],
- loc: {
- start: { line: 1, column: 16 },
- end: { line: 1, column: 28 }
- }
- }],
- range: [14, 30],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 30 }
- }
- },
- rest: null,
- generator: true,
- expression: false,
- range: [0, 30],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 30 }
- }
- }],
- range: [0, 30],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 30 }
- }
- },
-
- 'function a() { yield* (42,42); }': {
- type: 'Program',
- body: [{
- type: 'FunctionDeclaration',
- id: {
- type: 'Identifier',
- name: 'a',
- range: [10, 11],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 11 }
- }
- },
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'YieldExpression',
- argument: {
- type: 'SequenceExpression',
- expressions: [{
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [24, 26],
- loc: {
- start: { line: 1, column: 24 },
- end: { line: 1, column: 26 }
- }
- }, {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [27, 29],
- loc: {
- start: { line: 1, column: 27 },
- end: { line: 1, column: 29 }
- }
- }],
- range: [24, 29],
- loc: {
- start: { line: 1, column: 24 },
- end: { line: 1, column: 29 }
- }
- },
- delegate: true,
- range: [16, 30],
- loc: {
- start: { line: 1, column: 16 },
- end: { line: 1, column: 30 }
- }
- },
- range: [16, 31],
- loc: {
- start: { line: 1, column: 16 },
- end: { line: 1, column: 31 }
- }
- }],
- range: [14, 33],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 33 }
- }
- },
- rest: null,
- generator: true,
- expression: false,
- range: [0, 33],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 33 }
- }
- }],
- range: [0, 33],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 33 }
- }
- },
-
- 'function a() {\n yield 1;\n}': {
- generateFrom: {
- type: 'Program',
- body: [{
- type: 'FunctionDeclaration',
- id: {
- type: 'Identifier',
- name: 'a',
- range: [10, 11],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 11 }
- }
- },
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'YieldExpression',
- argument: {
- type: 'Literal',
- value: 1,
- raw: '1',
- range: [21, 22],
- loc: {
- start: { line: 1, column: 21 },
- end: { line: 1, column: 22 }
- }
- },
- delegate: false,
- range: [15, 22],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 22 }
- }
- },
- range: [15, 22],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 22 }
- }
- }],
- range: [14, 23],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 23 }
- }
- },
- rest: null,
- generator: true,
- expression: false,
- range: [0, 23],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 23 }
- }
- }],
- range: [0, 23],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 23 }
- }
- }
- }
- },
-
- 'Array Comprehension with parenthesized ComprehensionBlock': {
-
- '[x for (x in [])];':{
- generateFrom: {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'ComprehensionExpression',
- filter: null,
- blocks: [{
- type: 'ComprehensionBlock',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [8, 9],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 9 }
- }
- },
- right: {
- type: 'ArrayExpression',
- elements: [],
- range: [13, 15],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 15 }
- }
- },
- each: false,
- of: false
- }],
- body: {
- type: 'Identifier',
- name: 'x',
- range: [1, 2],
- loc: {
- start: { line: 1, column: 1 },
- end: { line: 1, column: 2 }
- }
- },
- range: [0, 17],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 17 }
- }
- },
- range: [0, 17],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 17 }
- }
- }],
- range: [0, 17],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 17 }
- }
- }
- },
-
- '[x for (x of [])];': {
- generateFrom: {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'ComprehensionExpression',
- filter: null,
- blocks: [{
- type: 'ComprehensionBlock',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [8, 9],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 9 }
- }
- },
- right: {
- type: 'ArrayExpression',
- elements: [],
- range: [13, 15],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 15 }
- }
- },
- each: false,
- of: true
- }],
- body: {
- type: 'Identifier',
- name: 'x',
- range: [1, 2],
- loc: {
- start: { line: 1, column: 1 },
- end: { line: 1, column: 2 }
- }
- },
- range: [0, 17],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 17 }
- }
- },
- range: [0, 17],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 17 }
- }
- }],
- range: [0, 17],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 17 }
- }
- }
- },
-
- '[1 for (x in y) if (f(x))];': {
- generateFrom: {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'ComprehensionExpression',
- filter: {
- type: 'CallExpression',
- callee: {
- type: 'Identifier',
- name: 'f',
- range: [20, 21],
- loc: {
- start: { line: 1, column: 20 },
- end: { line: 1, column: 21 }
- }
- },
- 'arguments': [{
- type: 'Identifier',
- name: 'x',
- range: [22, 23],
- loc: {
- start: { line: 1, column: 22 },
- end: { line: 1, column: 23 }
- }
- }],
- range: [20, 24],
- loc: {
- start: { line: 1, column: 20 },
- end: { line: 1, column: 24 }
- }
- },
- blocks: [{
- type: 'ComprehensionBlock',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [8, 9],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 9 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [13, 14],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 14 }
- }
- },
- each: false,
- of: false
- }],
- body: {
- type: 'Literal',
- value: 1,
- raw: '1',
- range: [1, 2],
- loc: {
- start: { line: 1, column: 1 },
- end: { line: 1, column: 2 }
- }
- },
- range: [0, 26],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 26 }
- }
- },
- range: [0, 26],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 26 }
- }
- }],
- range: [0, 26],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 26 }
- }
- }
- },
-
- '[1 for (x of y) if (f(x))];': {
- generateFrom: {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'ComprehensionExpression',
- filter: {
- type: 'CallExpression',
- callee: {
- type: 'Identifier',
- name: 'f',
- range: [20, 21],
- loc: {
- start: { line: 1, column: 20 },
- end: { line: 1, column: 21 }
- }
- },
- 'arguments': [{
- type: 'Identifier',
- name: 'x',
- range: [22, 23],
- loc: {
- start: { line: 1, column: 22 },
- end: { line: 1, column: 23 }
- }
- }],
- range: [20, 24],
- loc: {
- start: { line: 1, column: 20 },
- end: { line: 1, column: 24 }
- }
- },
- blocks: [{
- type: 'ComprehensionBlock',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [8, 9],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 9 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [13, 14],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 14 }
- }
- },
- each: false,
- of: true
- }],
- body: {
- type: 'Literal',
- value: 1,
- raw: '1',
- range: [1, 2],
- loc: {
- start: { line: 1, column: 1 },
- end: { line: 1, column: 2 }
- }
- },
- range: [0, 26],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 26 }
- }
- },
- range: [0, 26],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 26 }
- }
- }],
- range: [0, 26],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 26 }
- }
- }
- },
-
- '[[\n x,\n b,\n c\n] for (x in []) for (b in []) if (b && c)];': {
- generateFrom: {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'ComprehensionExpression',
- filter: {
- type: 'LogicalExpression',
- operator: '&&',
- left: {
- type: 'Identifier',
- name: 'b',
- range: [41, 42],
- loc: {
- start: { line: 1, column: 41 },
- end: { line: 1, column: 42 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'c',
- range: [46, 47],
- loc: {
- start: { line: 1, column: 46 },
- end: { line: 1, column: 47 }
- }
- },
- range: [41, 47],
- loc: {
- start: { line: 1, column: 41 },
- end: { line: 1, column: 47 }
- }
- },
- blocks: [{
- type: 'ComprehensionBlock',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [14, 15],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 15 }
- }
- },
- right: {
- type: 'ArrayExpression',
- elements: [],
- range: [19, 21],
- loc: {
- start: { line: 1, column: 19 },
- end: { line: 1, column: 21 }
- }
- },
- each: false,
- of: false
- }, {
- type: 'ComprehensionBlock',
- left: {
- type: 'Identifier',
- name: 'b',
- range: [28, 29],
- loc: {
- start: { line: 1, column: 28 },
- end: { line: 1, column: 29 }
- }
- },
- right: {
- type: 'ArrayExpression',
- elements: [],
- range: [33, 35],
- loc: {
- start: { line: 1, column: 33 },
- end: { line: 1, column: 35 }
- }
- },
- each: false,
- of: false
- }],
- body: {
- type: 'ArrayExpression',
- elements: [{
- type: 'Identifier',
- name: 'x',
- range: [2, 3],
- loc: {
- start: { line: 1, column: 2 },
- end: { line: 1, column: 3 }
- }
- }, {
- type: 'Identifier',
- name: 'b',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- }, {
- type: 'Identifier',
- name: 'c',
- range: [6, 7],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 7 }
- }
- }],
- range: [1, 8],
- loc: {
- start: { line: 1, column: 1 },
- end: { line: 1, column: 8 }
- }
- },
- range: [0, 49],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 49 }
- }
- },
- range: [0, 49],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 49 }
- }
- }],
- range: [0, 49],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 49 }
- }
- }
- },
-
- '[[\n x,\n b,\n c\n] for (x of []) for (b of []) if (b && c)];': {
- generateFrom: {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'ComprehensionExpression',
- filter: {
- type: 'LogicalExpression',
- operator: '&&',
- left: {
- type: 'Identifier',
- name: 'b',
- range: [41, 42],
- loc: {
- start: { line: 1, column: 41 },
- end: { line: 1, column: 42 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'c',
- range: [46, 47],
- loc: {
- start: { line: 1, column: 46 },
- end: { line: 1, column: 47 }
- }
- },
- range: [41, 47],
- loc: {
- start: { line: 1, column: 41 },
- end: { line: 1, column: 47 }
- }
- },
- blocks: [{
- type: 'ComprehensionBlock',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [14, 15],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 15 }
- }
- },
- right: {
- type: 'ArrayExpression',
- elements: [],
- range: [19, 21],
- loc: {
- start: { line: 1, column: 19 },
- end: { line: 1, column: 21 }
- }
- },
- each: false,
- of: true
- }, {
- type: 'ComprehensionBlock',
- left: {
- type: 'Identifier',
- name: 'b',
- range: [28, 29],
- loc: {
- start: { line: 1, column: 28 },
- end: { line: 1, column: 29 }
- }
- },
- right: {
- type: 'ArrayExpression',
- elements: [],
- range: [33, 35],
- loc: {
- start: { line: 1, column: 33 },
- end: { line: 1, column: 35 }
- }
- },
- each: false,
- of: true
- }],
- body: {
- type: 'ArrayExpression',
- elements: [{
- type: 'Identifier',
- name: 'x',
- range: [2, 3],
- loc: {
- start: { line: 1, column: 2 },
- end: { line: 1, column: 3 }
- }
- }, {
- type: 'Identifier',
- name: 'b',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- }, {
- type: 'Identifier',
- name: 'c',
- range: [6, 7],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 7 }
- }
- }],
- range: [1, 8],
- loc: {
- start: { line: 1, column: 1 },
- end: { line: 1, column: 8 }
- }
- },
- range: [0, 49],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 49 }
- }
- },
- range: [0, 49],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 49 }
- }
- }],
- range: [0, 49],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 49 }
- }
- }
- }
- },
-
- 'Expression Closures': {
- 'function milky() ({})': {
- type: 'Program',
- body: [{
- type: 'FunctionDeclaration',
- id: {
- type: 'Identifier',
- name: 'milky',
- range: [9, 14],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 14 }
- }
- },
- params: [],
- defaults: [],
- body: {
- type: 'ObjectExpression',
- properties: [],
- range: [18, 20],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 20 }
- }
- },
- rest: null,
- generator: false,
- expression: true,
- range: [0, 21],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 21 }
- }
- }],
- range: [0, 21],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 21 }
- }
- },
-
- '({ test: function () 42 })': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'ObjectExpression',
- properties: [{
- type: 'Property',
- key: {
- type: 'Identifier',
- name: 'test',
- range: [3, 7],
- loc: {
- start: { line: 1, column: 3 },
- end: { line: 1, column: 7 }
- }
- },
- value: {
- type: 'FunctionExpression',
- id: null,
- params: [],
- defaults: [],
- body: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [21, 23],
- loc: {
- start: { line: 1, column: 21 },
- end: { line: 1, column: 23 }
- }
- },
- rest: null,
- generator: false,
- expression: true,
- range: [9, 23],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 23 }
- }
- },
- kind: 'init',
- range: [3, 23],
- loc: {
- start: { line: 1, column: 3 },
- end: { line: 1, column: 23 }
- }
- }],
- range: [1, 25],
- loc: {
- start: { line: 1, column: 1 },
- end: { line: 1, column: 25 }
- }
- },
- range: [0, 26],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 26 }
- }
- }],
- range: [0, 26],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 26 }
- }
- },
-
- 'function a() 1': {
- generateFrom: {
- type: 'Program',
- body: [{
- type: 'FunctionDeclaration',
- id: {
- type: 'Identifier',
- name: 'a',
- range: [9, 10],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 10 }
- }
- },
- params: [],
- defaults: [],
- body: {
- type: 'Literal',
- value: 1,
- raw: '1',
- range: [13, 14],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 14 }
- }
- },
- rest: null,
- generator: false,
- expression: true,
- range: [0, 14],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 14 }
- }
- }],
- range: [0, 14],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 14 }
- }
- }
- },
-
- 'function a() {\n}': {
- generateFrom: {
- type: 'Program',
- body: [{
- type: 'FunctionDeclaration',
- id: {
- type: 'Identifier',
- name: 'a',
- range: [9, 10],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 10 }
- }
- },
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [],
- range: [13, 15],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 15 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [0, 15],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 15 }
- }
- }],
- range: [0, 15],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 15 }
- }
- }
- },
-
- 'function a() my()': {
- generateFrom: {
- type: 'Program',
- body: [{
- type: 'FunctionDeclaration',
- id: {
- type: 'Identifier',
- name: 'a',
- range: [9, 10],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 10 }
- }
- },
- params: [],
- defaults: [],
- body: {
- type: 'CallExpression',
- callee: {
- type: 'Identifier',
- name: 'my',
- range: [13, 15],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 15 }
- }
- },
- 'arguments': [],
- range: [13, 17],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 17 }
- }
- },
- rest: null,
- generator: false,
- expression: true,
- range: [0, 17],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 17 }
- }
- }],
- range: [0, 17],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 17 }
- }
- }
- },
-
- '[function () 1];': {
- generateFrom: {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'ArrayExpression',
- elements: [{
- type: 'FunctionExpression',
- id: null,
- params: [],
- defaults: [],
- body: {
- type: 'Literal',
- value: 1,
- raw: '1',
- range: [13, 14],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 14 }
- }
- },
- rest: null,
- generator: false,
- expression: true,
- range: [1, 14],
- loc: {
- start: { line: 1, column: 1 },
- end: { line: 1, column: 14 }
- }
- }],
- range: [0, 15],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 15 }
- }
- },
- range: [0, 15],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 15 }
- }
- }],
- range: [0, 15],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 15 }
- }
- }
- },
-
- '({test: function () (42,42)})': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'ObjectExpression',
- properties: [{
- type: 'Property',
- key: {
- type: 'Identifier',
- name: 'test',
- range: [3, 7],
- loc: {
- start: { line: 1, column: 3 },
- end: { line: 1, column: 7 }
- }
- },
- value: {
- type: 'FunctionExpression',
- id: null,
- params: [],
- defaults: [],
- body: {
- type: 'SequenceExpression',
- expressions: [{
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [22, 24],
- loc: {
- start: { line: 1, column: 22 },
- end: { line: 1, column: 24 }
- }
- }, {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [25, 27],
- loc: {
- start: { line: 1, column: 25 },
- end: { line: 1, column: 27 }
- }
- }],
- range: [22, 27],
- loc: {
- start: { line: 1, column: 22 },
- end: { line: 1, column: 27 }
- }
- },
- rest: null,
- generator: false,
- expression: true,
- range: [9, 28],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 28 }
- }
- },
- kind: 'init',
- range: [3, 28],
- loc: {
- start: { line: 1, column: 3 },
- end: { line: 1, column: 28 }
- }
- }],
- range: [1, 30],
- loc: {
- start: { line: 1, column: 1 },
- end: { line: 1, column: 30 }
- }
- },
- range: [0, 31],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 31 }
- }
- }],
- range: [0, 31],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 31 }
- }
- }
- }
-};
-
-// Special handling for regular expression literal since we need to
-// convert it to a string literal, otherwise it will be decoded
-// as object "{}" and the regular expression would be lost.
-function adjustRegexLiteral(key, value) {
- 'use strict';
- if (key === 'value' && value instanceof RegExp) {
- value = value.toString();
- }
- return value;
-}
-
-function testIdentity(code, syntax) {
- 'use strict';
- var expected, tree, actual, actual2, options, StringObject;
-
- // alias, so that JSLint does not complain.
- StringObject = String;
-
- options = {
- comment: false,
- range: false,
- loc: false,
- tokens: false,
- raw: false
- };
-
- tree = esprima.parse(code, options);
- expected = JSON.stringify(tree, adjustRegexLiteral, 4);
- tree = esprima.parse(escodegen.generate(tree), options);
- actual = JSON.stringify(tree, adjustRegexLiteral, 4);
- tree = esprima.parse(escodegen.generate(syntax), options);
- actual2 = JSON.stringify(tree, adjustRegexLiteral, 4);
- expect(actual).to.be.equal(expected);
- expect(actual2).to.be.equal(expected);
-}
-
-function testGenerate(expected, result) {
- 'use strict';
- var actual, options;
-
- options = {
- indent: ' ',
- parse: esprima.parse,
- moz: {
- starlessGenerator: true,
- comprehensionExpressionStartsWithAssignment: true
- }
- };
-
- actual = escodegen.generate(result.generateFrom, options);
- expect(actual).to.be.equal(expected);
-}
-
-function isGeneratorIdentityFixture(result) {
- 'use strict';
- return !result.hasOwnProperty('generateFrom') &&
- !result.hasOwnProperty('result');
-}
-
-function runTest(code, result) {
- 'use strict';
- if (result.hasOwnProperty('generateFrom')) {
- testGenerate(code, result);
- } else {
- testIdentity(code, result);
- }
-}
-
-describe('moz test', function () {
- Object.keys(data).forEach(function (category) {
- Object.keys(data[category]).forEach(function (source) {
- it(category, function () {
- var expected = data[category][source];
- runTest(source, expected);
- });
- });
- });
-});
-/* vim: set sw=4 ts=4 et tw=80 : */