diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 5fce6df3bd5..4df934941d3 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -3859,13 +3859,14 @@ module ts { function parseObjectBindingElement(): BindingElement { let node = createNode(SyntaxKind.BindingElement); // TODO(andersh): Handle computed properties - let id = parsePropertyName(); - if (id.kind === SyntaxKind.Identifier && token !== SyntaxKind.ColonToken) { - node.name = id; + let tokenIsIdentifier = isIdentifier(); + let propertyName = parsePropertyName(); + if (tokenIsIdentifier && token !== SyntaxKind.ColonToken) { + node.name = propertyName; } else { parseExpected(SyntaxKind.ColonToken); - node.propertyName = id; + node.propertyName = propertyName; node.name = parseIdentifierOrPattern(); } node.initializer = parseInitializer(/*inParameter*/ false);