diff --git a/src/analyze_transpiled_module.zig b/src/analyze_transpiled_module.zig
index 8ce0d9a75b..f07867611c 100644
--- a/src/analyze_transpiled_module.zig
+++ b/src/analyze_transpiled_module.zig
@@ -199,6 +199,17 @@ const ExportInfo = union(enum) {
},
};
+export fn zig__renderDiff(expected_ptr: [*:0]const u8, expected_len: usize, received_ptr: [*:0]const u8, received_len: usize, globalThis: *bun.JSC.JSGlobalObject) void {
+ const DiffFormatter = @import("bun.js/test/diff_format.zig").DiffFormatter;
+ const formatter = DiffFormatter{
+ .received_string = received_ptr[0..received_len],
+ .expected_string = expected_ptr[0..expected_len],
+ .globalThis = globalThis,
+ };
+ const stderr = std.io.getStdErr().writer();
+ stderr.print("DIFF:\n{}\n", .{formatter}) catch {};
+}
+
fn fail(result: *c_int, code: c_int) ?*JSModuleRecord {
result.* = code;
return null;
diff --git a/src/bun.js/bindings/BunAnalyzeTranspiledModule.cpp b/src/bun.js/bindings/BunAnalyzeTranspiledModule.cpp
index 74283820cb..fdb26b6e12 100644
--- a/src/bun.js/bindings/BunAnalyzeTranspiledModule.cpp
+++ b/src/bun.js/bindings/BunAnalyzeTranspiledModule.cpp
@@ -75,6 +75,7 @@ String dumpRecordInfo(JSModuleRecord* moduleRecord);
struct ModuleInfo;
extern "C" JSModuleRecord* zig__ModuleInfo__parseFromSourceCode(JSGlobalObject* globalObject, VM& vm, const Identifier& module_key, const SourceCode& source_code, VariableEnvironment& declared_variables, VariableEnvironment& lexical_variables, const char* source_ptr, size_t source_len, int* failure_reason);
+extern "C" void zig__renderDiff(const char* expected_ptr, size_t expected_len, const char* received_ptr, size_t received_len, JSGlobalObject* globalObject);
extern "C" Identifier* JSC__IdentifierArray__create(size_t len)
{
@@ -249,12 +250,8 @@ static EncodedJSValue fallbackParse(JSGlobalObject* globalObject, const Identifi
dataLog(" ------", "\n");
dataLog(" BunAnalyzeTranspiledModule:", "\n");
- dataLog("\n\n \x1b[91m\x1b(B\x1b[m\n ------", "\n");
- dataLog("value", actual.utf8().data(), "\n");
- dataLog("\n \x1b[91m\x1b(B\x1b[m", "\n");
- dataLog("\n\n \x1b[92m\x1b(B\x1b[m\n ------", "\n");
- dataLog("value", expected.utf8().data(), "\n");
- dataLog("\n \x1b[92m\x1b(B\x1b[m", "\n");
+ zig__renderDiff(expected.utf8().data(), expected.utf8().length(), actual.utf8().data(), actual.utf8().length(), globalObject);
+
RELEASE_AND_RETURN(scope, JSValue::encode(rejectWithError(createError(globalObject, WTF::String::fromLatin1("Imports different between parseFromSourceCode and fallbackParse")))));
}
}