Skip to content

Commit 0d0df08

Browse files
committed
fix($parse): Handle the empty string as an object key
When rebuilding an object literal key, use `isDefined` to decide if this is a string token or an identifier Closes angular#9893
1 parent 0c19482 commit 0d0df08

File tree

2 files changed

+2
-1
lines changed

2 files changed

+2
-1
lines changed

src/ng/parse.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -806,7 +806,7 @@ Parser.prototype = {
806806
break;
807807
}
808808
var token = this.expect();
809-
keys.push(token.string || token.text);
809+
keys.push(isDefined(token.string) ? token.string : token.text);
810810
this.consume(':');
811811
var value = this.expression();
812812
valueFns.push(value);

test/ng/parseSpec.js

+1
Original file line numberDiff line numberDiff line change
@@ -511,6 +511,7 @@ describe('parser', function() {
511511
expect(toJson(scope.$eval("{a:'b',}"))).toEqual('{"a":"b"}');
512512
expect(toJson(scope.$eval("{'a':'b',}"))).toEqual('{"a":"b"}');
513513
expect(toJson(scope.$eval("{\"a\":'b',}"))).toEqual('{"a":"b"}');
514+
expect(toJson(scope.$eval('{"":"b",}'))).toEqual('{"":"b"}');
514515
});
515516

516517
it('should evaluate object access', function() {

0 commit comments

Comments
 (0)