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.