JSFiddle - React, Tailwind, and code Playground

HTML

<script src="http://github.com/michaelficarra/MooTools-Struct/raw/master/Source/Struct.js"></script>
<script src="http://github.com/michaelficarra/MooTools-Inspect/raw/master/Source/inspect.js"></script>
<script src="http://github.com/michaelficarra/MooShell-Libs/raw/master/console.js"></script>
<link rel="stylesheet" href="http://github.com/michaelficarra/MooShell-Libs/raw/master/console.css">

CSS

h1.title {
    font-size: 20px;
    border-bottom: 1px solid #444;
    padding: 5px;
    margin: 14px 6px 4px;
}
h2.subtitle {
    font-size: 15px;
    padding: 5px 10px;
    font-style: oblique;
}

JavaScript

function title(txt){
    document.body.adopt(new Element('h1',{'class':'title',text:txt}));
}
function subtitle(txt){
    document.body.adopt(new Element('h2',{'class':'subtitle',text:txt}));
}

var Car = new Struct('make','model','year');     // [Class:Car]
var myCar = new Car('Chrysler','Cirrus',2000);   // [Object:myCar]

title('How To Use');

subtitle('Basics');
console.log(myCar.getMake());                    // 'Chrysler'
console.log(myCar.getModel());                   // 'Cirrus'
console.log(myCar.getYear());                    // 2000
console.log(myCar.setModel('Sebring'));          // [Object:myCar]
console.log(myCar.getModel());                   // 'Sebring'

subtitle('Undefined Values');
var myCar = new Car('Chrysler','Cirrus');        // [Object:myCar]
console.log(myCar.getMake());                    // 'Chrysler'
console.log(myCar.getYear());                    // null
console.log(myCar.setYear(2000));                // [Object:myCar]
console.log(myCar.getYear());                    // 2000

subtitle('Custom Prefixes');
var Car = new Struct('make','model','year',{
    getterPrefix: '',
    setterPrefix: 'change'
});                                              // [Class:Car]
var myCar = new Car('Chrysler','Cirrus',2000);   // [Object:myCar]
console.log(myCar.make());                       // 'Chrysler'
console.log(myCar.year());                       // 2000
console.log(myCar.changeYear(2010));             // [Object:myCar]
console.log(myCar.year());                       // 2010

subtitle('Array Instantiation');
var Car = new Struct(['make','model','year']);
var Car2 = new Struct('make','model','year');
Car.members();       // ['make','model','year']
Car2.members();      // ['make','model','year']

title('Public Instance Methods');

var Car = new Struct('make','model','year');     // [Class:Car]

subtitle('toHash');
console.log((new Car('Chrysler','Cirrus',2000)).toHash());
console.log((new...