diff --git a/cmake/luajit.cmake b/cmake/luajit.cmake
index e5260221fccbe7a74ec5e10f4cb9b89d15122ef1..ea4878a93438215bb75349d9046a2d732bc152a2 100644
--- a/cmake/luajit.cmake
+++ b/cmake/luajit.cmake
@@ -217,6 +217,7 @@ macro(luajit_build)
         add_definitions(-DLUAJIT_USE_ASAN=1)
         set (luajit_ldflags ${luajit_ldflags} -fsanitize=address)
     endif()
+    add_definitions(-DLUAJIT_SMART_STRINGS=1)
     # Add all COMPILE_DEFINITIONS to xcflags
     get_property(defs DIRECTORY PROPERTY COMPILE_DEFINITIONS)
     foreach(def ${defs})
diff --git a/third_party/luajit b/third_party/luajit
index 97699d9ee2467389b6aea21a098e38aff3469b5f..b8587fafa36b417194b208d747e1f2be1faf19be 160000
--- a/third_party/luajit
+++ b/third_party/luajit
@@ -1 +1 @@
-Subproject commit 97699d9ee2467389b6aea21a098e38aff3469b5f
+Subproject commit b8587fafa36b417194b208d747e1f2be1faf19be