ember-source
Version:
A JavaScript framework for creating ambitious web applications
134 lines (131 loc) • 6.44 kB
JavaScript
const SIGN_BIT = -536870913;
const MAX_INT = ~SIGN_BIT - 1;
const MIN_INT = ~MAX_INT;
function isHandle(value) {
return value >= 0;
}
function constants(...values) {
return [false, true, null, undefined, ...values];
}
function isSmallInt(value) {
return value % 1 === 0 && value <= MAX_INT && value >= MIN_INT;
}
function encodeNegative(num) {
return num & SIGN_BIT;
}
function decodeNegative(num) {
return num | ~SIGN_BIT;
}
function encodePositive(num) {
return ~num;
}
function decodePositive(num) {
return ~num;
}
function encodeHandle(num) {
return num;
}
function decodeHandle(num) {
return num;
}
function encodeImmediate(num) {
num |= 0;
return num < 0 ? encodeNegative(num) : encodePositive(num);
}
function decodeImmediate(num) {
num |= 0;
return num > SIGN_BIT ? decodePositive(num) : decodeNegative(num);
}
[1, -1].forEach(x => decodeImmediate(encodeImmediate(x)));
const VM_HELPER_OP = 16;
const VM_SET_NAMED_VARIABLES_OP = 17;
const VM_SET_BLOCKS_OP = 18;
const VM_SET_VARIABLE_OP = 19;
const VM_SET_BLOCK_OP = 20;
const VM_GET_VARIABLE_OP = 21;
const VM_GET_PROPERTY_OP = 22;
const VM_GET_BLOCK_OP = 23;
const VM_SPREAD_BLOCK_OP = 24;
const VM_HAS_BLOCK_OP = 25;
const VM_HAS_BLOCK_PARAMS_OP = 26;
const VM_CONCAT_OP = 27;
const VM_CONSTANT_OP = 28;
const VM_CONSTANT_REFERENCE_OP = 29;
const VM_PRIMITIVE_OP = 30;
const VM_PRIMITIVE_REFERENCE_OP = 31;
const VM_DUP_OP = 33;
const VM_POP_OP = 34;
const VM_LOAD_OP = 35;
const VM_FETCH_OP = 36;
const VM_ROOT_SCOPE_OP = 37;
const VM_VIRTUAL_ROOT_SCOPE_OP = 38;
const VM_CHILD_SCOPE_OP = 39;
const VM_POP_SCOPE_OP = 40;
const VM_TEXT_OP = 41;
const VM_COMMENT_OP = 42;
const VM_APPEND_HTML_OP = 43;
const VM_APPEND_SAFE_HTML_OP = 44;
const VM_APPEND_DOCUMENT_FRAGMENT_OP = 45;
const VM_APPEND_NODE_OP = 46;
const VM_APPEND_TEXT_OP = 47;
const VM_OPEN_ELEMENT_OP = 48;
const VM_OPEN_DYNAMIC_ELEMENT_OP = 49;
const VM_PUSH_REMOTE_ELEMENT_OP = 50;
const VM_STATIC_ATTR_OP = 51;
const VM_DYNAMIC_ATTR_OP = 52;
const VM_COMPONENT_ATTR_OP = 53;
const VM_FLUSH_ELEMENT_OP = 54;
const VM_CLOSE_ELEMENT_OP = 55;
const VM_POP_REMOTE_ELEMENT_OP = 56;
const VM_MODIFIER_OP = 57;
const VM_BIND_DYNAMIC_SCOPE_OP = 58;
const VM_PUSH_DYNAMIC_SCOPE_OP = 59;
const VM_POP_DYNAMIC_SCOPE_OP = 60;
const VM_COMPILE_BLOCK_OP = 61;
const VM_PUSH_BLOCK_SCOPE_OP = 62;
const VM_PUSH_SYMBOL_TABLE_OP = 63;
const VM_INVOKE_YIELD_OP = 64;
const VM_JUMP_IF_OP = 65;
const VM_JUMP_UNLESS_OP = 66;
const VM_JUMP_EQ_OP = 67;
const VM_ASSERT_SAME_OP = 68;
const VM_ENTER_OP = 69;
const VM_EXIT_OP = 70;
const VM_TO_BOOLEAN_OP = 71;
const VM_ENTER_LIST_OP = 72;
const VM_EXIT_LIST_OP = 73;
const VM_ITERATE_OP = 74;
const VM_MAIN_OP = 75;
const VM_CONTENT_TYPE_OP = 76;
const VM_CURRY_OP = 77;
const VM_PUSH_COMPONENT_DEFINITION_OP = 78;
const VM_PUSH_DYNAMIC_COMPONENT_INSTANCE_OP = 79;
const VM_RESOLVE_DYNAMIC_COMPONENT_OP = 80;
const VM_RESOLVE_CURRIED_COMPONENT_OP = 81;
const VM_PUSH_ARGS_OP = 82;
const VM_PUSH_EMPTY_ARGS_OP = 83;
const VM_PREPARE_ARGS_OP = 85;
const VM_CAPTURE_ARGS_OP = 86;
const VM_CREATE_COMPONENT_OP = 87;
const VM_REGISTER_COMPONENT_DESTRUCTOR_OP = 88;
const VM_PUT_COMPONENT_OPERATIONS_OP = 89;
const VM_GET_COMPONENT_SELF_OP = 90;
const VM_GET_COMPONENT_TAG_NAME_OP = 91;
const VM_GET_COMPONENT_LAYOUT_OP = 92;
const VM_POPULATE_LAYOUT_OP = 95;
const VM_INVOKE_COMPONENT_LAYOUT_OP = 96;
const VM_BEGIN_COMPONENT_TRANSACTION_OP = 97;
const VM_COMMIT_COMPONENT_TRANSACTION_OP = 98;
const VM_DID_CREATE_ELEMENT_OP = 99;
const VM_DID_RENDER_LAYOUT_OP = 100;
const VM_DEBUGGER_OP = 103;
const VM_STATIC_COMPONENT_ATTR_OP = 105;
const VM_DYNAMIC_CONTENT_TYPE_OP = 106;
const VM_DYNAMIC_HELPER_OP = 107;
const VM_DYNAMIC_MODIFIER_OP = 108;
const VM_IF_INLINE_OP = 109;
const VM_NOT_OP = 110;
const VM_GET_DYNAMIC_VAR_OP = 111;
const VM_LOG_OP = 112;
const VM_SYSCALL_SIZE = 113;
export { VM_CAPTURE_ARGS_OP as $, VM_ENTER_OP as A, VM_EXIT_OP as B, VM_PUSH_SYMBOL_TABLE_OP as C, VM_PUSH_BLOCK_SCOPE_OP as D, VM_COMPILE_BLOCK_OP as E, VM_INVOKE_YIELD_OP as F, VM_JUMP_IF_OP as G, VM_JUMP_UNLESS_OP as H, VM_JUMP_EQ_OP as I, VM_TO_BOOLEAN_OP as J, VM_TEXT_OP as K, VM_COMMENT_OP as L, VM_OPEN_ELEMENT_OP as M, VM_OPEN_DYNAMIC_ELEMENT_OP as N, VM_PUSH_REMOTE_ELEMENT_OP as O, VM_POP_REMOTE_ELEMENT_OP as P, VM_FLUSH_ELEMENT_OP as Q, VM_CLOSE_ELEMENT_OP as R, VM_MODIFIER_OP as S, VM_DYNAMIC_MODIFIER_OP as T, VM_STATIC_ATTR_OP as U, VM_MAIN_OP as V, VM_DYNAMIC_ATTR_OP as W, VM_PUSH_COMPONENT_DEFINITION_OP as X, VM_RESOLVE_DYNAMIC_COMPONENT_OP as Y, VM_PUSH_ARGS_OP as Z, VM_PUSH_EMPTY_ARGS_OP as _, VM_CONTENT_TYPE_OP as a, VM_PREPARE_ARGS_OP as a0, VM_CREATE_COMPONENT_OP as a1, VM_REGISTER_COMPONENT_DESTRUCTOR_OP as a2, VM_BEGIN_COMPONENT_TRANSACTION_OP as a3, VM_PUT_COMPONENT_OPERATIONS_OP as a4, VM_COMPONENT_ATTR_OP as a5, VM_STATIC_COMPONENT_ATTR_OP as a6, VM_DID_CREATE_ELEMENT_OP as a7, VM_GET_COMPONENT_SELF_OP as a8, VM_GET_COMPONENT_TAG_NAME_OP as a9, VM_DYNAMIC_CONTENT_TYPE_OP as aA, VM_ENTER_LIST_OP as aB, VM_EXIT_LIST_OP as aC, VM_ITERATE_OP as aD, constants as aE, encodeHandle as aF, isSmallInt as aG, encodeImmediate as aH, VM_GET_COMPONENT_LAYOUT_OP as aa, VM_POPULATE_LAYOUT_OP as ab, VM_VIRTUAL_ROOT_SCOPE_OP as ac, VM_SET_NAMED_VARIABLES_OP as ad, VM_SET_BLOCKS_OP as ae, VM_INVOKE_COMPONENT_LAYOUT_OP as af, VM_DID_RENDER_LAYOUT_OP as ag, VM_COMMIT_COMPONENT_TRANSACTION_OP as ah, VM_DEBUGGER_OP as ai, VM_CURRY_OP as aj, VM_DYNAMIC_HELPER_OP as ak, VM_HELPER_OP as al, VM_GET_VARIABLE_OP as am, VM_SET_VARIABLE_OP as an, VM_SET_BLOCK_OP as ao, VM_ROOT_SCOPE_OP as ap, VM_GET_PROPERTY_OP as aq, VM_GET_BLOCK_OP as ar, VM_SPREAD_BLOCK_OP as as, VM_HAS_BLOCK_OP as at, VM_HAS_BLOCK_PARAMS_OP as au, VM_CONCAT_OP as av, VM_IF_INLINE_OP as aw, VM_NOT_OP as ax, VM_GET_DYNAMIC_VAR_OP as ay, VM_LOG_OP as az, VM_ASSERT_SAME_OP as b, VM_APPEND_HTML_OP as c, VM_APPEND_TEXT_OP as d, VM_RESOLVE_CURRIED_COMPONENT_OP as e, VM_PUSH_DYNAMIC_COMPONENT_INSTANCE_OP as f, VM_APPEND_SAFE_HTML_OP as g, VM_APPEND_DOCUMENT_FRAGMENT_OP as h, VM_APPEND_NODE_OP as i, VM_SYSCALL_SIZE as j, VM_CHILD_SCOPE_OP as k, VM_POP_SCOPE_OP as l, VM_PUSH_DYNAMIC_SCOPE_OP as m, VM_POP_DYNAMIC_SCOPE_OP as n, VM_CONSTANT_OP as o, decodeHandle as p, VM_CONSTANT_REFERENCE_OP as q, VM_PRIMITIVE_OP as r, isHandle as s, decodeImmediate as t, VM_PRIMITIVE_REFERENCE_OP as u, VM_DUP_OP as v, VM_POP_OP as w, VM_LOAD_OP as x, VM_FETCH_OP as y, VM_BIND_DYNAMIC_SCOPE_OP as z };