diff --git a/src/ffi/luau/compat.rs b/src/ffi/luau/compat.rs index 117d1d5..c718214 100644 --- a/src/ffi/luau/compat.rs +++ b/src/ffi/luau/compat.rs @@ -341,7 +341,7 @@ pub unsafe fn luaL_loadbufferx( fn free(p: *mut c_void); } - let chunk_is_text = (*data as u8) >= b'\n'; + let chunk_is_text = size == 0 || (*data as u8) >= b'\n'; if !mode.is_null() { let modeb = CStr::from_ptr(mode).to_bytes(); if !chunk_is_text && !modeb.contains(&b'b') { diff --git a/tests/tests.rs b/tests/tests.rs index d7a5d65..59fb28f 100644 --- a/tests/tests.rs +++ b/tests/tests.rs @@ -73,6 +73,7 @@ fn test_load() -> Result<()> { let result: i32 = func.call(())?; assert_eq!(result, 3); + assert!(lua.load("").exec().is_ok()); assert!(lua.load("§$%§&$%&").exec().is_err()); Ok(())