mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-04-25 07:02:13 +00:00
Support object literal shorthands
This commit is contained in:
parent
c636eddcd2
commit
10a9f407bf
2
dist/assemblyscript.js
vendored
2
dist/assemblyscript.js
vendored
File diff suppressed because one or more lines are too long
2
dist/assemblyscript.js.map
vendored
2
dist/assemblyscript.js.map
vendored
File diff suppressed because one or more lines are too long
@ -446,9 +446,15 @@ export class ASTBuilder {
|
||||
for (let i = 1; i < numElements; ++i) {
|
||||
sb.push(",\n");
|
||||
indent(sb, this.indentLevel);
|
||||
this.visitNode(names[i]);
|
||||
sb.push(": ");
|
||||
this.visitNode(values[i]);
|
||||
let name = names[i];
|
||||
let value = values[i];
|
||||
if (name === value) {
|
||||
this.visitNode(name);
|
||||
} else {
|
||||
this.visitNode(name);
|
||||
sb.push(": ");
|
||||
this.visitNode(value);
|
||||
}
|
||||
}
|
||||
sb.push("\n");
|
||||
indent(sb, --this.indentLevel);
|
||||
|
@ -3093,17 +3093,20 @@ export class Parser extends DiagnosticEmitter {
|
||||
} else {
|
||||
name = Node.createIdentifierExpression(tn.readIdentifier(), tn.range());
|
||||
}
|
||||
if (!tn.skip(Token.COLON)) {
|
||||
names.push(name);
|
||||
if (tn.skip(Token.COLON)) {
|
||||
let value = this.parseExpression(tn, Precedence.COMMA + 1);
|
||||
if (!value) return null;
|
||||
values.push(value);
|
||||
} else if (!name.is(CommonFlags.QUOTED)) {
|
||||
values.push(name);
|
||||
} else {
|
||||
this.error(
|
||||
DiagnosticCode._0_expected,
|
||||
tn.range(), ":"
|
||||
);
|
||||
return null;
|
||||
}
|
||||
let value = this.parseExpression(tn, Precedence.COMMA + 1);
|
||||
if (!value) return null;
|
||||
names.push(name);
|
||||
values.push(value);
|
||||
if (!tn.skip(Token.COMMA)) {
|
||||
if (tn.skip(Token.CLOSEBRACE)) {
|
||||
break;
|
||||
|
@ -4,6 +4,8 @@ var obj = {
|
||||
"c": false,
|
||||
d: {
|
||||
a: 123,
|
||||
"b": {}
|
||||
"b": {},
|
||||
c,
|
||||
d: d
|
||||
}
|
||||
};
|
||||
|
@ -4,6 +4,8 @@ var obj = {
|
||||
"c": false,
|
||||
d: {
|
||||
a: 123,
|
||||
"b": {}
|
||||
"b": {},
|
||||
c,
|
||||
d: d
|
||||
}
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user