aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/jq/execute.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/jq/execute.zig')
-rw-r--r--src/jq/execute.zig14
1 files changed, 2 insertions, 12 deletions
diff --git a/src/jq/execute.zig b/src/jq/execute.zig
index 0565004..282a35c 100644
--- a/src/jq/execute.zig
+++ b/src/jq/execute.zig
@@ -187,12 +187,7 @@ pub const Runtime = struct {
std.debug.assert(self.values.ensureSize(1));
const value = self.values.pop();
- const is_falsy = switch (value) {
- .null => true,
- .bool => |b| !b,
- else => false,
- };
- if (is_falsy) {
+ if (jv.ops.isFalsy(value)) {
self.pc += offset - 1;
}
// FIXME: optimize pop and push
@@ -334,12 +329,7 @@ pub const Runtime = struct {
_ = self.values.pop();
const lhs = self.values.pop();
const rhs = self.values.pop();
- const is_falsy = switch (lhs) {
- .null => true,
- .bool => |b| !b,
- else => false,
- };
- try self.values.push(if (is_falsy) rhs else lhs);
+ try self.values.push(if (jv.ops.isFalsy(lhs)) rhs else lhs);
},
.@"const" => |idx| {
std.debug.assert(self.values.ensureSize(1));