Skip to content

Instantly share code, notes, and snippets.

Matthew Robb matthewrobb

Block or report user

Report or block matthewrobb

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View boxed-property.js
;(function() {
"use strict";
// Utility class to enable extension of objects that cannot use
// normal class based inheritance e.g. custom functions
//
// Simply put, it adds a mixin static that contains all the property
// descriptors that class intends to pass on
class Mixable {
static mixin(target) {
@matthewrobb
matthewrobb / index.html
Created Nov 4, 2018
Mithril + Mobx Mithril + Mobx // source https://jsbin.com/jesebuv
View index.html
<!DOCTYPE html>
<html>
<head>
<meta name="description" content="Mithril + Mobx">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>Mithril + Mobx</title>
<script src="https://unpkg.com/mithril/mithril.js"></script>
</head>
<body>
View free-fn.js
'use strict';
export function free(fn) {
return function() {
return this === undefined ? fn.apply(undefined, arguments) : fn.call(undefined, this, ...arguments);
}
}
export function freeRight(fn) {
return function() {
View index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>
<body>
View my-page-component.js
const Shade = Shades;
const { Content, Slot } = Shades;
function PageFooter(props) {
return (
<footer>
{props.children}
</footer>
);
}
View bar.js
module.setters = {};
var __es6__import__ = function(name, setter) {
require(name);
var resolvedPath = require.resolve(name);
require.cache[resolvedPath].dependants.push(module);
module.setters[resolvedPath] = setter;
};
module.dependants = [];
@matthewrobb
matthewrobb / exports.js
Created Aug 18, 2014
Universal Module Exports
View exports.js
function createUMEModule(values) {
function __ume__() {
return typeof values.default !== "function" ? values.default : values.default.apply(this, arguments);
}
Object.keys(values).forEach(function(name) {
Object.defineProperty(__ume__, name, {
enumerable: true,
configurable: false,
get: function() {
View InlineWorker.js
(function(global){
"use strict";
function fnToBlob(fn) {
var body = (fn && fn.toString()) || "";
return new Blob([ body.slice(body.indexOf("{") + 1, body.length - 1) ]);
}
function createWorker(fn) {
var blobURL = global.URL.createObjectURL(fnToBlob(fn)),
@matthewrobb
matthewrobb / async-templates.js
Created Jun 27, 2014
Async YUI Micro Templates
View async-templates.js
require(traceur.RUNTIME_PATH);
function compile() {
var tpl = Micro.precompile("ello <%= govna %>") + "";
tpl = [
"(async function() {",
tpl.slice(tpl.indexOf("{") + 1, tpl.length - 1),
"})();"
].join("\n");
View input.js
export var counter = 0;
function inc_a(cb){
console.log(counter++);
if(counter < 100) {
setTimeout(inc_a, 0, [ cb ]);
} else {
cb();
}
}
You can’t perform that action at this time.