Merge pull request #9 from mozilla/fix-object-identifier

Adds identifiers as valid object keys
This commit is contained in:
Vlad Filippov 2020-08-14 14:37:52 -04:00 коммит произвёл GitHub
Родитель c2917282d8 0dc31b0553
Коммит 2079e42d09
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
2 изменённых файлов: 7 добавлений и 5 удалений

Просмотреть файл

@ -377,12 +377,11 @@ mod tests {
}
#[test]
#[should_panic]
fn test_object_expression_properties() {
let context = value!({"foo": {"baz": {"bar": "tek"}}});
assert_eq!(
Evaluator::new()
.eval_in_context("foo['ba' + 'z']", &context)
.eval_in_context("foo['ba' + 'z'].bar", &context)
.unwrap(),
value!("tek")
);
@ -407,7 +406,6 @@ mod tests {
}
#[test]
#[should_panic]
fn test_object_literal_identifiers() {
assert_eq!(
Evaluator::new().eval("{foo: {bar: 'tek'}}").unwrap(),
@ -416,7 +414,6 @@ mod tests {
}
#[test]
#[should_panic]
fn test_object_literal_properties() {
assert_eq!(
Evaluator::new().eval("{foo: 'bar'}.foo").unwrap(),

Просмотреть файл

@ -151,6 +151,11 @@ Array: Vec<Box<Expression>> = {
}
Object: Vec<(String, Box<Expression>)> = {
"{" <Comma<(<String> ":" <Expression>)>> "}",
"{" <Comma<(<ObjectIdentifier> ":" <Expression>)>> "}",
"{}" => vec![],
}
ObjectIdentifier: String = {
String,
Identifier
}