Skip to content

Instantly share code, notes, and snippets.

View bjornstar's full-sized avatar
🐙

Bjorn Stromberg bjornstar

🐙
View GitHub Profile
@bjornstar
bjornstar / has.js
Created October 25, 2022 10:02
JSDoc Typescript Has Property
/**
* @template {{}} O
* @template {PropertyKey} K
* @param {O} obj
* @param {K} key
* @returns {o is O & Record<K, unknown>}
*/
function has(obj, key) {
return Object.hasOwnProperty.call(obj, key);
}
@bjornstar
bjornstar / keybase.md
Last active September 28, 2017 01:29
Keybase proof

Keybase proof

I hereby claim:

  • I am bjornstar on github.
  • I am bjornstar (https://keybase.io/bjornstar) on keybase.
  • I have a public key ASAHALg86VNmRInTPzJiUANiQ2JvkSnyesuS-_Gvmq--2go

To claim this, I am signing this object:

@bjornstar
bjornstar / index.js
Last active August 29, 2015 14:10
rumplestiltskin vs sigmund
var r = require('rumplestiltskin');
var s = require('sigmund');
var a = [];
function bench(fn) {
console.time(fn.name + ' complex');
for (var i = 0; i < 1000000; i += 1) {
a[i] = fn({ a: 1, b: true, c: null, d: {}, e: [], f: 'asdf', g: { h: { i: '1234' } } });
}
var timeoutLengthInMS = 1;
var c = 0;
function test() {
var d1 = process.hrtime();
setTimeout(function() {
var dd = process.hrtime(d1);
// convert [sec,ns] to msec
dd = dd[0] * 1e3 + dd[1]/1e6;
@bjornstar
bjornstar / s.js
Last active December 15, 2015 06:39 — forked from isaacs/s.js
var assert = require('assert');
var c = 0;
test();
function test() {
var d1 = Date.now()
setTimeout(function() {
var d2 = Date.now()
Event.observe(window, 'dom:loaded', function () {
$$('.post .pin').each(function (pin) {
var up, down;
Event.observe(pin, 'mouseenter', function (event) {
clearInterval(down);
var step = 1;
up = window.setInterval(function () {
if (step == 11) {
clearInterval(up);
return
@bjornstar
bjornstar / timebench.js
Last active September 29, 2015 21:08
setInterval and setTimeout Benchmark
var startTime = new Date().getTime();
var previousTimeStamp = 0;
var reps = 0;
var times = {};
var timeoutDelay = 0;
var timeoutFinalStats = {};
var intervalDelay = 0;
var intervalFinalStats = {};
var theInterval;
var theTimeout;