Skip to content

Instantly share code, notes, and snippets.

Avatar

Егор Халимоненко termi

View GitHub Profile
@termi
termi / Symbol_test.js
Created Mar 3, 2014
Symbol's polyfill test
View Symbol_test.js
applyPolyfills();var $S_polyfill$0 = Symbol["__polyfill__"];var $S_SET$0, $S_GET$0, $isSymbol$0;if($S_polyfill$0){$S_SET$0 = $S_polyfill$0["__setObjectSetter__"];$S_GET$0 = $S_polyfill$0["__setObjectGetter__"];$isSymbol$0 = $S_polyfill$0["__isSymbol__"];$S_polyfill$0 = true;}else {$S_polyfill$0 = false}
var private1 = Symbol();var $S$0 = $S_polyfill$0 && typeof private1 === 'object' && $isSymbol$0(private1);
var private2 = Symbol();var $S$1 = $S_polyfill$0 && typeof private2 === 'object' && $isSymbol$0(private2);
var publicProp1 = 'public_prop1';
var publicProp2 = (function(){return 'public_prop1'})();var $S$2 = $S_polyfill$0 && typeof publicProp2 === 'object' && $isSymbol$0(publicProp2);
function createSymbolOrObject(createSymbol){ return createSymbol ? Symbol() : {} };
{// simple
var obj = {}, obj1 = {};
@termi
termi / deepExtend.js
Last active Aug 29, 2015
deep extend
View deepExtend.js
var _hasOwn = Object.prototype.hasOwnProperty;
var _toString = Object.prototype.toString;
var _hasGOPD = typeof Object.getOwnPropertyDescriptor === 'function';
var _hasDP = typeof Object.defineProperty === 'function';
function _getOwnPropertyDescriptor(obj, prop) {
if ( _hasGOPD ) {
return Object.getOwnPropertyDescriptor(obj, prop)
}
else {
@termi
termi / data.json
Created Mar 30, 2014
github.com/kpdecker/jsdiff infinite loop ?
View data.json
{"expected":";applyPolyfills$0();(RegExp[\"__polyfill__\"]||function(obj1, obj2){var arr=RegExp[\"__polyfill__\"];if(!arr)arr=RegExp[\"__polyfill__\"]=[];arr.push([obj1,obj2])})({\"N[^1]N\":\"N(?:[^1]|[\\\\uD800-\\\\uDBFF][\\\\uDC00-\\\\uDFFF])N\",\"N[^1-9]N\":\"N(?:[^1-9]|[\\\\uD800-\\\\uDBFF][\\\\uDC00-\\\\uDFFF])N\",\"N[^\\\\s1-9]N\":\"N(?:[^\\\\s1-9]|[\\\\uD800-\\\\uDBFF][\\\\uDC00-\\\\uDFFF])N\",\"N[^\\\\S\\\\t\\\\r]N\":\"N[^\\\\S\\\\t\\\\r]N\",\"N[^\\\\da-z]N\":\"N(?:[^\\\\da-z]|[\\\\uD800-\\\\uDBFF][\\\\uDC00-\\\\uDFFF])N\",\"N[^\\\\D1-3]N\":\"N[^\\\\D1-3]N\",\"N[^\\\\w-]N\":\"N(?:[^\\\\w-]|[\\\\uD800-\\\\uDBFF][\\\\uDC00-\\\\uDFFF])N\",\"N[^\\\\Wa]N\":\"N[^\\\\Wa]N\",\"N[^\\\\s\\\\uD800\\\\uDC00-\\\\uD800\\\\uDCAA1-9]N\":\"N(?:[^\\\\s1-9]|(?:\\\\uD800[\\\\uDCAB-\\\\uDFFF]|[\\\\uD801-\\\\uDBFF][\\\\uDC00-\\\\uDFFF]))N\",\"N[^\\\\S\\\\uD800\\\\uDC00-\\\\uD800\\\\uDCAA\\\\t\\\\r]N\":\"N[^\\\\S\\\\t\\\\r]N\",\"N[^\\\\d\\\\uD800\\\\uDC00-\\\\uD800\\\\uDCAAa-z]N\":\"N(?:[^\\\\da-z]|(?:\\\\uD800[\\\\uDCAB-\\
@termi
termi / string_template_example.js
Last active Aug 29, 2015
String templates is not so good, as it can be :( . string_template_idea.js looks much better
View string_template_example.js
const mysql = require('mysql');
const crypto = require('crypto');
const color = require('ansi-color').set;
const stringUtils = require('./string.es6');
const DATABASE_NAME = 'test123'
, MESSAGES_TABLE_NAME = 'msgid'
, PLURALS_TABLE_NAME = 'plural'
;
@termi
termi / gen.es5.bt.js
Last active Aug 29, 2015
Generator comprehation transpiling test
View gen.es5.bt.js
var S_ITER$0 = typeof Symbol !== 'undefined' && Symbol && Symbol.iterator || '@@iterator';
var S_MARK$0 = typeof Symbol !== 'undefined' && Symbol && Symbol["__setObjectSetter__"];
function GET_ITER$0(v) {
if( v ) {
if( Array.isArray(v) )return 0;
var f;
if( S_MARK$0 )S_MARK$0(v);
if( typeof v === 'object' && typeof (f = v[S_ITER$0]) === 'function' ) {
if( S_MARK$0 )S_MARK$0(void 0);
return f.call(v);
@termi
termi / event_delegation.js
Created Apr 12, 2012
event delegation. It is nearly 140 bytes but unsafe. For more complex solution see comments
View event_delegation.js
function(
a, //CSS selector
b //callback function
) {
return function(
e, // event
c, // (placeholder)
d // (placeholder)
) {
d = e.target;
@termi
termi / LICENSE.txt
Created May 1, 2012 — forked from 140bytes/LICENSE.txt
event delegation
View LICENSE.txt
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004
Copyright (C) 2011 YOUR_NAME_HERE <YOUR_URL_HERE>
Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
@termi
termi / bug_examples.html
Created Aug 30, 2012
Fix Safari bug with [radio input with no form].cloneNode()
View bug_examples.html
<html>
<form>
<div id="test3">
test1 :
<input id="test1" type="radio" name="test" checked />
</div>
test 2:
<input type="radio" name="test" />
</form>
@termi
termi / polyfill.js
Created Sep 18, 2012 — forked from Raynos/polyfill.js
RadioNodeList polyfill
View polyfill.js
/*
demo :- http://jsfiddle.net/termi/pyFXW/
Implements RadioNodeList :- http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#radionodelist
Implementation just adds `.value` as a property to `NodeList`.
Requires ES5 shim and ES5 shimmable browser. (Modern and IE8)
*/
;(function () {
@termi
termi / index.js
Created Sep 25, 2012
:scope support test
View index.js
function testForRealScopePreudoClassSupport() {
var scopeSupport = false
, tmp = document.createElement("b")
;
tmp.innerHTML = "<i>t</i>";
try {
scopeSupport = tmp.querySelector(":scope>i");
scopeSupport = scopeSupport && scopeSupport.innerHTML == "t";