Skip to content

Instantly share code, notes, and snippets.

//
// Case 1
//
var a = [];
var t = performance.now();
for (var i = 0; i < 10000; i++)
a.push(new Promise(function(){}));
@lahmatiy
lahmatiy / tests.js
Last active August 29, 2015 14:02
Closure vs Function#bind
//
// Closure
//
var a = []; // хранилище истансов, чтобы они не разрушались (не собирались GC)
var getClosure = function(a){ return function(b){ return fn(a, b); } };
var t = performance.now();
for (var i = 0; i < 10000; i++)
a.push(getClosure(i));
@lahmatiy
lahmatiy / 1_template_BEFORE.html
Last active August 29, 2015 14:01
Basis.js 1.3 features <b:isolate> and b:show in use. Example from devpanel style refactoring: https://github.com/basisjs/basisjs/commit/b17a8026684c3cd2e1a5a6fafac6b55ecefee236
<b:style src="./item.css"/>
<b:define name="nestedViewCount" type="bool"/>
<b:define name="satelliteName" type="bool"/>
<b:define name="namespace" type="bool"/>
<div class="basisjs-devpanel-ui-view-item">
<div class="basisjs-devpanel-ui-view-item__title" event-click="toggle" event-mouseenter="enter" event-mouseleave="leave">
<div class="basisjs-devpanel-ui-view-item__expander basisjs-devpanel-ui-view-item__expander_{nestedViewCount}"/>
<span class="basisjs-devpanel-ui-view-item__satelliteName basisjs-devpanel-ui-view-item__satelliteName_{satelliteName}">
{satelliteName}
@lahmatiy
lahmatiy / AbstractDataset#compute.js
Created July 27, 2013 14:51
AbstractDataset#compute
basis.require('basis.event');
basis.require('basis.data');
var datasetComputeFunctions = {};
basis.data.AbstractDataset.extend({
/**
* @param {string|Array.<string>=} events
@lahmatiy
lahmatiy / patch.js
Created July 9, 2013 23:51
Path for field resolving in basis.data.value.BindValue#addLink and basis.data.value.BindValue#removeLink (resolving was dropped in 0.9.5)
basis.require('basis.data.value');
basis.require('basis.dom');
var DOM = basis.dom;
var BindValue = basis.data.value.BindValue;
var DOM_INSERT_HANDLER = function(value){
DOM.insert(DOM.clear(this), value);
};
var ids = String(
this.req.param('id') ||
this.req.param('ids')
).match(/(\d+)/g);
@lahmatiy
lahmatiy / knowhow_indexFieldOnEntityNestedDatasets.js
Last active December 19, 2015 09:19
HOWTO: Do you know that you can easily create dataset index fields for nested datasets for Entity?
basis.require('basis.entity');
basis.require('basis.data.index');
// create type with single field, that used for EntitySet
var Item = basis.entity.createType('SomeType', {
value: Number
});
// main Entity type
var DemoType = basis.entity.createType('DemoType', {
@lahmatiy
lahmatiy / basis.net.Transport_requestHeaders_patch.js
Last active December 19, 2015 06:29
Returns extra request headers for basis.net.Transport that sending prior to 0.9.5
basis.require('basis.net');
basis.net.AjaxTransport.prototype.requestHeaders['X-Requested-With'] = 'XMLHttpRequest';
basis.net.AjaxTransport.prototype.requestHeaders['X-Powered-By'] = 'basis.js';
@lahmatiy
lahmatiy / basis.data.property.AbstractProperty_restore.js
Created June 30, 2013 18:06
Path to restore basis.data.property.AbstractProperty (dropped in 0.9.4)
basis.require('basis.data');
basis.require('basis.data.property');
basis.namespace('basis.data.property').extend({
AbstractProperty: basis.data.Value
});
@lahmatiy
lahmatiy / basis.data.Value#set_forceEvent.js
Last active December 19, 2015 04:18
Path to restore forceEvent argument and boolean result for basis.data.Value#set (dropped in 0.9.4)
basis.require('basis.data');
(function(){
var set_ = basis.data.Value.prototype.set;
basis.data.Value.prototype.set = function(value, forceEvent){
var valueBeforeSet = this.value;
set_.call(this, value);