Skip to content

frontdevops/returnTrue

Repository files navigation

returnTrue

Help

truth-table

Demo: http://codepen.io/i0z/pen/GqPKKA?editors=1010

truth-table

Demo: http://codepen.io/i0z/pen/pbGqVZ?editors=1010


Reflexive

functionreflexive(x){returnx!=x;}reflexive(NaN)

Transitive

functiontransitive(x,y,z){returnx&&x==y&&y==z&&x!=z;}transitive([],0,[])

Counter

functioncounter(f){vara=f(),b=f();returna()==1&&a()==2&&a()==3&&b()==1&&b()==2;}counter((x=1)=>$=>x++)counter(x=>$=>x=-~x)// -2 symbols

Peano

chrome 54

functionpeano(x){return(x++!==x)&&(x++===x);}peano(2**53-1)

Array

functionarray(x,y){returnArray.isArray(x)&&!(xinstanceofArray)&&!Array.isArray(y)&&(yinstanceofArray);}array(a=Array.prototype,{__proto__:a})array((Array.isArray=x=>x[0],'1'),[])array('1',[],Array.isArray=x=>x[0])array(Array.isArray=x=>x.length,[])array(Array.isArray=$=>x--,[],x=1)array(0,[Array.isArray=>x=>!x])array([].__proto__,{__proto__:[]})array(x=[],x.__proto__=null,x),Object.create([]))// = 43array(Array.isArray=String,[])// = 23

Instance

functioninstance(x,y){returnxinstanceofy&&yinstanceofx&&x!==y;}instance(Object,Function)instance(Object,Proxy)

Instance2

function instance2(a,b,c){return a !== b && b !== c && a !== c && a instanceof b && b instanceof c && c instanceof a} Object,Function,{[Symbol.hasInstance]:_=>!0} 44 a=Object,Function,{[Symbol.hasInstance]:a} 42 a=Object,Function,c=_=>_,c.__proto__=a 38 a=Object,Function,new Proxy(a,a) 32 a=Object,a.bind(),a.bind() 26 

Proto1

functionproto1(x){returnx&&!("__proto__"inx);}proto1(Object.create(null))proto1({__proto__:null})

Undef

functionundef(x){return!{undefined: {undefined: 1}}[typeofx][x];}undef((Object.prototype['number']=0,0))undef(document.all)

Symmetric

functionsymmetric(x,y){returnx==y&&y!=x;}symmetric(1,{valueOf:$=>n=-~this.n})symmetric(n=1,{valueOf:$=>n++})

Ouroborobj

functionouroborobj(x){returnxinx;}ouroborobj([0])

Truth

functiontruth(x){returnx.valueOf()&&!x;}truth((Number.prototype.valueOf=$=>1,0))truth('',''.__proto__.valueOf=_=>1)truth(0,0..__proto__.valueOf=_=>1)

Wat

functionwat(x){returnx('hello')=='world:)'&&!x;}wat([a]=document.all,a.id='hello',a.valueOf=_=>'world:)');

Evil1

vareval=window.eval;functionevil1(x){returneval(x+'(x)')&&!eval(x)(x);}evil1($=>0)

Evil2

vareval=window.eval;functionevil2(x){returneval('('+x+')(x)')&&!eval(x)(x);}evil2($=>x,x=0)

Random1

functionrandom1(x){returnMath.random()inx;}random1((Math.random=$=>0,[0]))random1(Math.random=$=>'call')random1([0],Math.random=_=>0)random1([Math.random=_=>0])

Random2

{letrand=Math.random();functionrandom2(x){returnrandinx;}}random2(newProxy({},{has:$=>$}))

Random3

varkey=crypto.getRandomValues(newUint32Array(4));functionrandom3(x){vard=0;for(vari=0;i<key.length;i++){d|=key[i]^x[i];}returnd===0;}random3(Object.defineProperty(Uint32Array.prototype,'length',{value: 0}))random3(Uint32Array.prototype.__defineGetter__('length',$=>0))

Random4

{letrand=Math.random();functionrandom4(x){returnrand===x;}}random4(impossible)

New my level :)

Greaterself

functiongreaterself(x){returnx>8&&8>x;}greaterself({n:0,valueOf:function(){return++this.n%2?9:7}})greaterself({valueOf:$=>(n=-~this.n)%2?9:7})

Closure

functionclosure(x){returnx[x]==x;}closure([0]);

Any

functionany(x){returnx-1===x+1}any(2**54)any(1/0)

Isarray

functionisarray(x){returnArray.isArray(x)&&xinstanceofArray&&x.map===undefined}isarray(newProxy([],{get:(o,p)=>p=='map'?void0:o[p]}))

Brainfuck

functionbrainfuck(x){returnx(/2/<</3/)===16;}brainfuck((RegExp.prototype.valueOf=function(){returnthis.source},x=>x))

Native code

{consttoString=Function.prototype.toString;functionnative(x){return(x()===1)&&(x.toString()==='function (){[native code] }')&&(toString.call(x)===x.toString())}}function(){return1}.bind(null)(_=>1).bind()

Instance2

functioninstance2(x,y){returnxinstanceofy&&yinstanceofx&&x==y;}instance2(Function,Function)instance2(x=Function,x)

Minest

{letv=parseFloat('0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001')functionminest(x){returnx>0&&x<v&&x.toString().length<=6}}minest(Number.MIN_VALUE)

Reflexive2

functionreflexive2(x){return'number'==typeofx&&x!=x}reflexive2(NaN);

Numbers

functionnum1(a){// new Number(1)returna==1&&ainstanceofNumber}functionnum2(a){// Nanreturntypeofa=='number'&&!(ainstanceofNumber)}

Sum1

functionsumm1(x,y){returnx+y===0.3}summ1(0,0.3);

Summ2

functionsumm2(x,y){returnx+0.2===0.3}summ2(0.09999999999999998);

IsObject

functionisObject(x){return(typeofx=='object')&&!(xinstanceofObject)}isObject(null);

UndefinedObject

functionundefinedObject(x){returntypeofx=='undefined'&&xinstanceofObject;}undefinedObject(document.all);

Joke

functionjoke(s,x){returns==newx(s.length+1);}joke(',,,',Array);

Eval evil

functioneval_evil(x){returnx[x][x]("return true")();}eval_evil('constructor')

New

function_new(x){returnnewxinstanceofx;}_new(function(){})_new(classA{})

New2

function_new2(x){returnx()instanceofx;}_new2(functiona(){if(!(thisinstanceofa))returnnewa});

New3

function_new(x){returnx()instanceofx&&x.name==='';}_new(function(){if(!(thisinstanceofarguments.callee))returnnewarguments.callee})

Foo

functionfoo(f){varo={x: 'x'}functionx(x){returnthis.x===o[x]}returnf(o,x);}foo((o,x)=>x.bind(o,'x')())foo((o,x)=>x.call(o,'x')())

Random2.1 (if has access to global scope)

varrand=Math.random();functionrandom21(x){returnrandinx;}random21({[rand]:1}))

Date

functiondate(x){vard=newDate,a=[d];returna[x]()==d.toLocaleDateString()+', '+d.toLocaleTimeString();}date('toLocaleString');

Nill

functionnil(x){return(x!=null)&&(x<=null)&&(x>=null)}nil(0)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published