JSFiddle - React, Tailwind, and code Playground
JavaScript
function Compiler(){}
Object.defineProperty( Compiler.prototype, 'options', {
value: { 'action':0, 'else':0, 'if':0, 'while':0 }
});
Compiler.prototype.detectOperation = function( operation ){
var keys = [];
if ( typeof operation === 'function' ) {
return 'calculation';
} else if( typeof operation === 'object' ) {
keys = Object.keys( operation );
if ( keys.length === 1 ) {
if( keys[0] in this.options )
return keys[0];
} else if( keys.length === 2 ) {
keys = keys.sort();
if( keys[0] === 'else' && keys[1] === 'if' )
return 'ifelse';
}
}
var error = 'operation{ ' + keys[0];
for( var i = 1; i < keys.length; ++i )
error += '-' + keys[i];
error += ' } is not allowed operation';
console.log( error );
throw console.error( error );
}
var comp = new Compiler();
var op = comp.detectOperation( { 'if': 0, 'elue': 2 } );
console.log( 'eo' );
console.log( op );