Skip to content

Instantly share code, notes, and snippets.

/*!
* jQuery JavaScript Library v2.1.1pre
* http://jquery.com/
*
* Includes Sizzle.js
* http://sizzlejs.com/
*
* Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors
* Released under the MIT license
* http://jquery.org/license
css21/text/word-spacing-004.xht
css21/text/word-spacing-005.xht
css21/text/word-spacing-006.xht
css21/text/word-spacing-016.xht
css21/text/word-spacing-017.xht
css21/text/word-spacing-018.xht
css21/text/word-spacing-028.xht
css21/text/word-spacing-029.xht
css21/text/word-spacing-030.xht
css21/text/word-spacing-040.xht
@gsnedders
gsnedders / JSrust.md
Last active May 23, 2017 06:52
A Vague Plan for a JS VM in Rust

Many years ago, myself and @farre discussed a number of things we would like to do differently in a new JS VM, back when both of us were working on Carakan (myself, admittedly, mostly getting fed up of doing whitebox testing and starting to play around with stuff; I can't claim to have implemented much!).

While the gains of a new VM in Rust are inherently limited if there's some form of JIT (as Rust's memory safety inherently will not cover any generated code), it does nevertheless provide some new impetus to try and write such a VM.

From my personal point-of-view, the VM should:

  • have a memory-safe interpreter for cold code;
  • operate almost entirely on IRs, with:
    • a high-level IR mapping closely to JS constructs designed for interpreter performance (i.e., coarse-grained register based bytecode),
  • a mid-level IR mapping closely to VM internals designed for compilation (i.e., a fine-grained bytecode which almost all optimizations can be expressed in terms of; this can be used for multiple tiers