During the development of SICP JS, starting in 2008, it became clear that purpose-designed sublanguages of JavaScript would contribute to the learning experience.
[3] Source §1 is a very small purely functional sublanguage of JavaScript, designed for Chapter 1 of SICP JS.
Source §2 adds pairs and a list library, following the data structures theme of Chapter 2.
All Source languages are properly tail recursive, as required by Chapter 1 of SICP and as specified by ECMAScript 2015.
Since the Safari browser is ECMAScript-2015-compliant, including proper tail calls, it can serve as an implementation of all Source languages, provided that the SICP package is loaded.