Skip to content

Instantly share code, notes, and snippets.

Another test paste I guess
<!doctype html>
<meta charset="utf-8">
<script>
var Platform = {flags: {shadow: 'native'}};
</script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/polymer/0.1.4/platform.js"></script>
<script>
document.registerElement('x-a', {
prototype: {
__proto__: HTMLElement.prototype,

Module Syntax

This document attempts to exhaustively explore the syntax of the ES6 Modules proposal.

Module syntax is valid only in module code. Script code is not module code, so existing script tags cannot contain module code. The intention is that HTML will add a module tag and a default module loader that is used to fetch and instantiate module code. See dherman/web-modules for more info on progress specifying the behavior of these components.

@bterlson
bterlson / array.prototype.reverse
Last active August 29, 2015 13:57
The tweak is to only do Get if HasProperty returns true.
1. Let O be the result of calling ToObject passing the this value as the argument.
2. ReturnIfAbrupt(O).
3. Let lenVal be the result of Get(O, "length").
4. Let len be ToLength(lenVal).
5. ReturnIfAbrupt(len).
6. Let middle be floor(len/2).
7. Let lower be 0.
8. Repeat, while lower ≠ middle
a. Let upper be len−lower−1.
b. Let upperP be ToString(upper).
let x = "outer";
let obj = { x: "object" };
let res;
with ( obj ) {
res = { x };
// per 12.1.2.1, short-hand propdef must statically bind to a declarative env record binding
}
assert( res.x === "outer" ); // is this true?
@bterlson
bterlson / Array.prototype.unshift
Last active August 29, 2015 13:58
Tweak unshift to only process elements when no arguments are passed (See new step 7). Note that all implementations still assign length when no arguments are passed.
1. Let O be the result of calling ToObject passing the this value as the argument.
2. ReturnIfAbrupt(O).
3. Let lenVal be the result of Get(O, "length")
4. Let len be ToLength(lenVal).
5. ReturnIfAbrupt(len).
6. Let argCount be the number of actual arguments.
7. If argCount > 0 then
a. Let k be len.
b. Repeat, while k > 0,
i. Let from be ToString(k–1).
@bterlson
bterlson / spec.html
Last active August 29, 2015 13:59
Canonical Spec Section
<es-intro>
<p>Introductory matter. Could probably be an intro attribute on clauses</p>
</es-intro>
<es-clause title="Greetings" anchor="sec-greetings">
<!-- anchor is optional, is calculated for you if you don't specify -->
<p>Clauses are normative and contain text...</p>
<es-clause title="sub-clause">
<p>When evaluating <es-nt>BindingElement</es-nt>, you better do it right!</p>
class Cancellation extends Error { };
class CancellablePromise extends Promise {
constructor(resolver, onCancelled) {
this._onCancelled = onCancelled;
this._isResolved = false;
super((resolve, reject) => {
this._reject = reject;
const wrappedResolve = value => { resolve(value); this._isResolved = true; };
const wrappedReject = reason => { reject(reason); this._isResolved = true; };
class A {
if (defineBar) {
bar => {
}
}
while(needsMoreMethods) {
// add more methods
}
@bterlson
bterlson / stream-bifurcate.js
Created October 28, 2014 23:33
stream-bifurcate
var _ = require('highland');
var Readable = require('stream').Readable;
var Writable = require('stream').Writable;
var util = require('util');
util.inherits(Tributary, Writable);
function Tributary() {
Writable.call(this, { objectMode: true });
this.forks = [];