Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 500005
Collapse All | Expand All

(-)a/bundles/org.eclipse.orion.client.javascript/web/eslint/lib/rules/no-unused-expressions.js (-2 / +24 lines)
Lines 1-5 Link Here
1
/*eslint-env amd */
1
/*eslint-env amd */
2
define(function(module) {
2
define([
3
'estraverse/estraverse',
4
'module'
5
], function(Estraverse, module) {
3
	//------------------------------------------------------------------------------
6
	//------------------------------------------------------------------------------
4
	// Rule Definition
7
	// Rule Definition
5
	//------------------------------------------------------------------------------
8
	//------------------------------------------------------------------------------
Lines 74-83 define(function(module) { Link Here
74
			return /^(?:Assignment|Call|New|Update|Yield)Expression$/.test(node.type) ||
77
			return /^(?:Assignment|Call|New|Update|Yield)Expression$/.test(node.type) ||
75
				(node.type === "UnaryExpression" && ["delete", "void"].indexOf(node.operator) >= 0);
78
				(node.type === "UnaryExpression" && ["delete", "void"].indexOf(node.operator) >= 0);
76
		}
79
		}
80
		
81
		function isRecoveredNode(currentNode) {
82
			var result = false;
77
83
84
			Estraverse.traverse(currentNode, {
85
				/**
86
				 * @callback
87
				 */
88
				enter: function(node, parent) {
89
					if (node.range && node.range[0] === node.range[1]) {
90
						result = true;
91
						return Estraverse.VisitorOption.Break;
92
					}
93
				}
94
			});
95
96
			return result;
97
		}
78
		return {
98
		return {
79
			"ExpressionStatement": function(node) {
99
			"ExpressionStatement": function(node) {
80
				if (!isValidExpression(node.expression) && !isDirective(node, context.getAncestors())) {
100
				if (!isValidExpression(node.expression)
101
						&& !isDirective(node, context.getAncestors())
102
						&& !isRecoveredNode(node.expression)) {
81
					context.report(node, "Expected an assignment or function call and instead saw an expression.");
103
					context.report(node, "Expected an assignment or function call and instead saw an expression.");
82
				}
104
				}
83
			}
105
			}

Return to bug 500005