DevinReview is the way to understand code.
Code review that organizes diffs, detects moved code, and flags potential bugs.
Try on any public or private GitHub PR URL
Intelligently organized code diffs
1 Add setTimeout.clock marker for fake timer detection
fn setFakeTimerMarker(globalObject: *jsc.JSGlobalObject, enabled: bool) void {
const globalThis_value = globalObject.toJSValue();
const setTimeout_fn = (globalThis_value.getOwnTruthy(globalObject, "setTimeout") catch return) orelse return;
// Set setTimeout.clock to indicate fake timers status.
// testing-library/react checks Object.hasOwnProperty.call(setTimeout, 'clock')
// to detect if fake timers are enabled.
setTimeout_fn.put(globalObject, "clock", jsc.JSValue.jsBoolean(enabled));
}
2 Fix advanceTimersByTime(0) not firing immediate timers
// Before:
const target = current.addMsFloat(arg_number);
// After:
const effective_advance = if (arg_number == 0) 1 else arg_number;
const target = current.addMsFloat(effective_advance);
3 Regression tests
test("advanceTimersByTime(0) fires setTimeout(fn, 0) timers", async () => {
jest.useFakeTimers();
try {
let called = false;
setTimeout(() => {
called = true;
}, 0);
expect(called).toBe(false);
jest.advanceTimersByTime(0);
expect(called).toBe(true);
} finally {
jest.useRealTimers();
}
});
Bugs and flag detection
1 Potential bug
setFakeTimerMarker sets clock to false instead of deleting it, causing jestFakeTimersAreEnabled() to return true after useRealTimers()
4 Flags
Test order dependency - first test assumes clean global state
Copy/move detection
Automatically detects when code is moved or copied, and shows you where it came from.
match role.as_str() {
"user" => {
messages.push(ChatMessage::User {
content: UserMessageContent::Text(text),
name: None,
});
}
// ... other roles
}
Try Devin Review now.