blob: 5be9d8b17d929ed3a0d0ac599d154f48a8716488 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2014 Alex Panchenko
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Alex Panchenko - initial API and Implementation
*******************************************************************************/
package org.eclipse.dltk.javascript.parser.tests;
import org.eclipse.dltk.ast.utils.ASTUtil;
import org.eclipse.dltk.javascript.ast.BinaryOperation;
import org.eclipse.dltk.javascript.ast.FunctionStatement;
import org.eclipse.dltk.javascript.ast.ObjectInitializer;
import org.eclipse.dltk.javascript.ast.Script;
import org.eclipse.dltk.javascript.ast.VariableDeclaration;
import org.eclipse.dltk.javascript.parser.PropertyExpressionUtils;
public class KeywordTest extends AbstractJSParserTest {
public void testDeleteAsPropertyExpression() {
Script script = parse("a.delete = function(){}");
assertFalse(reporter.hasErrors());
BinaryOperation assignment = uniqueResult(ASTUtil.select(script,
BinaryOperation.class));
assertEquals("a.delete",
PropertyExpressionUtils.getPath(assignment.getLeftExpression()));
assertTrue(assignment.getRightExpression() instanceof FunctionStatement);
}
public void testDeleteInObjectLiteral() {
final Script script = parse("var keywords={delete:1}");
assertFalse(reporter.hasErrors());
final VariableDeclaration var = uniqueResult(ASTUtil.select(script,
VariableDeclaration.class));
final ObjectInitializer object = (ObjectInitializer) var
.getInitializer();
assertEquals(1, object.getInitializers().size());
assertIdentifier("delete",
object.getPropertyInitializers()[0].getName());
assertDecimal("1", object.getPropertyInitializers()[0].getValue());
}
}