Skip to content

Instantly share code, notes, and snippets.

abstract class Foo {
String item;
}
class Bar extends Foo {
@override
String item;
Bar() { item = "yolo"; }
}
Node prev_node = node;
Node next_node = node.next;
Node new_node = new Node(element, next_node);
prev_node.next = new_node;
@gsathya
gsathya / issues.md
Last active February 15, 2017 06:33
gunasekaran@gunasekaran-macbookair ~/code/scratch [8:11:32]
> $ node
> var bluebird = require('bluebird');
undefined
> function f() {
... Promise.resolve().then(() => console.log('1'));
... bluebird.resolve().then(() => console.log('2'));
... Promise.resolve().then(() => console.log('3'));
... }
undefined
@gsathya
gsathya / transforms.js
Created March 20, 2017 22:23
dynamic import
// Original:
import("module/id").then(...);
// Node.js (synchronous require; easy):
Promise.resolve().then(_ => require("module/id")).then(...);
// AMD (async require; non-standard):
new Promise(resolve => require("module/id", resolve)).then(...);
// Webpack 2 (require.ensure is Webpack-specific):
!(function(e) {
function t(r) {
if (n[r]) return n[r].exports;
var o = (n[r] = { exports: {}, id: r, loaded: !1 });
return e[r].call(o.exports, o, o.exports, t), (o.loaded = !0), o.exports;
}
var n = {};
return (t.m = e), (t.c = n), (t.p = "./"), t(0);
})(
(function(e) {
{
class A {
constructor(arg) {
return arg;
}
}
class C extends A {
#x;
class X extends Promise {
static get [Symbol.species]() {
return Y;
}
}
class Y {
constructor(executor) {
return new Proxy(new Promise(executor), {});
}
➜ v8 (1f0419da93) ✗ python parse-mem.py
AST Node Count Total Size
VariableProxy 22049 529.2 kb
Literal 5635 90.176 kb
FunctionLiteral 968 77.52 kb
ObjectLiteral::Property 2430 58.344 kb
Assignment 1066 25.608 kb
ObjectLiteral 648 20.768 kb
Call 820 19.704 kb
ExpressionStatement 1191 19.072 kb
@gsathya
gsathya / closure.js
Created March 7, 2018 00:54
Rethink PrivateName
function observed({kind, key, placement, descriptor, initializer}, privateFieldMaker) {
assert(kind == "field");
assert(placement == "own");
// Create a new anonymous private name as a key for a class element
let { get, set } = privateFieldMaker();
let underlyingDescriptor = { enumerable: false, configurable: false, writable: true };
let underlying = { kind, key: storage, placement, descriptor: underlyingDescriptor, initializer };
return {
kind: "method",
key,