It executes a shell script IN THE CURRENT SHELL, therefore preseving the variables/environment variables set by that script in the current/originating shell.
e.g. if you do "source test.sh" and test.sh sets variable X=2, then in the originating/current shell, X is now set, even after test.sh finishes running.