Release notes for 526

Improvements

NoteStatus

Optimized physics broadphase for up to 5x faster raycasts.

Live

Fix a bug with table.unpack that, under rare circumstances, would allow unpacking arrays of size 8000 or larger.

Live

Disable microprofiler scopes corresponding to property indexing on mobile to avoid the high timer overhead distorting overall script execution timings.

Live

Implement support for generalized iteration RFC in Luau:

  1. When iterating through dictionaries, there's no longer a need to use pairs(). You can simply iterate through dictionary tables using for loop syntax:

for k, v in { a = 1, b = 2 } do
...
end
  1. When iterating through arrays, there's no longer a need to use pairs()/ipairs() in most cases. You can simply iterate through array-like tables using for loop syntax:

for _, child in workspace:GetChildren() do
...
end

Note that unlike ipairs(), this traversal will not stop at the nil elements; it however guarantees that the iteration order through keys 1..#t is sequential. As such for most uses of ipairs() this traversal is a good replacement as well.

  1. The object that is being iterated through, whether a table or a userdata, now supports __iter metamethod - when defined, __iter is called before the loop starts and must return the loop iterator function and state, for example assuming Node is a class-like table:

Node.__iter = function(node)
return next, node.children
end

This feature currently is only enabled in Studio and requires opting into the corresponding beta feature; once we gather enough feedback to make sure the implementation is solid, it will be enabled in live experiences.

Live

Scripts will not be able to set reference properties to restricted instances, like those in CoreGui.

Live

Added a LaunchIntent class to track studio launch purpose and a Platform level module to contain it.

Live

Fixes

NoteStatus

Introduces fix to replicate deletions from the subtree of a part instance being re-streamed-in.

Live

On this page