// This file is part of the Luau programming language and is licensed under MIT License; see LICENSE.txt for details #include "luacode.h" #include "Luau/Compiler.h" #include char* luau_compile(const char* source, size_t size, lua_CompileOptions* options, size_t* outsize) { LUAU_ASSERT(outsize); Luau::CompileOptions opts; if (options) { static_assert(sizeof(lua_CompileOptions) == sizeof(Luau::CompileOptions), "C and C++ interface must match"); memcpy(static_cast(&opts), options, sizeof(opts)); } std::string result = compile(std::string(source, size), opts); char* copy = static_cast(malloc(result.size())); if (!copy) return nullptr; memcpy(copy, result.data(), result.size()); *outsize = result.size(); return copy; }