Skip to content

Commit 02faac5

Browse files
committed
Add Halstead test for Mozjs grammar
1 parent 4cd495a commit 02faac5

2 files changed

Lines changed: 26 additions & 5 deletions

File tree

‎src/getter.rs‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -128,11 +128,11 @@ impl Getter for MozjsCode {
128128
| PERCENT | STARSTAR | PIPE | AMP | LTLT | TILDE | LT | LTEQ | EQEQ | BANGEQ | GTEQ
129129
| GT | PLUSEQ | BANG | BANGEQEQ | EQEQEQ | DASHEQ | STAREQ | SLASHEQ | PERCENTEQ
130130
| STARSTAREQ | GTGTEQ | GTGTGTEQ | LTLTEQ | AMPEQ | CARET | CARETEQ | PIPEEQ
131-
| Yield | LBRACK | LBRACE | Await | QMARK | QMARKQMARK | New | Let | Var | Const => {
132-
HalsteadType::Operator
133-
}
134-
Identifier | Identifier2 | String | Number | True | False | Null | Void | This
135-
| Super | Undefined | Set | Get | Typeof | Instanceof => HalsteadType::Operand,
131+
| Yield | LBRACK | LBRACE | Await | QMARK | QMARKQMARK | New | Let | Var | Const
132+
| Function | Function2 | SEMI => HalsteadType::Operator,
133+
Identifier | Identifier2 | MemberExpression | PropertyIdentifier | String | Number
134+
| True | False | Null | Void | This | Super | Undefined | Set | Get | Typeof
135+
| Instanceof => HalsteadType::Operand,
136136
_ => HalsteadType::Unknown,
137137
}
138138
}

‎src/metrics/halstead.rs‎

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -425,6 +425,27 @@ mod tests {
425425
);
426426
}
427427

428+
#[test]
429+
fn mozjs_operators_and_operands() {
430+
check_metrics!(
431+
"function main() {
432+
var a, b, c, avg;
433+
a = 5; b = 5; c = 5;
434+
avg = (a + b + c) / 3;
435+
console.log(\"{}\", avg);
436+
}",
437+
"foo.js",
438+
MozjsParser,
439+
halstead,
440+
[
441+
(u_operators, 10, usize), // function, (), {}, var, =, +, /, ,, ., ;
442+
(operators, 24, usize),
443+
(u_operands, 11, usize), // main, a, b, c, avg, 3, 5, console.log, console, log, "{}"
444+
(operands, 21, usize)
445+
]
446+
);
447+
}
448+
428449
#[test]
429450
fn typescript_operators_and_operands() {
430451
check_metrics!(

0 commit comments

Comments
 (0)