1e8af9738SPeter Avalos 2e8af9738SPeter Avalos#------------------------------------------------------------------------------ 3*3b9cdfa3SAntonio Huete Jimenez# $File: javascript,v 1.4 2022/09/02 08:08:17 christos Exp $ 4e8af9738SPeter Avalos# javascript: magic for javascript and node.js scripts. 5e8af9738SPeter Avalos# 6*3b9cdfa3SAntonio Huete Jimenez0 string/w #!/bin/node Node.js script text executable 7e8af9738SPeter Avalos!:mime application/javascript 8*3b9cdfa3SAntonio Huete Jimenez0 string/w #!/usr/bin/node Node.js script text executable 9e8af9738SPeter Avalos!:mime application/javascript 10*3b9cdfa3SAntonio Huete Jimenez0 string/w #!/bin/nodejs Node.js script text executable 11e8af9738SPeter Avalos!:mime application/javascript 12*3b9cdfa3SAntonio Huete Jimenez0 string/w #!/usr/bin/nodejs Node.js script text executable 13e8af9738SPeter Avalos!:mime application/javascript 14*3b9cdfa3SAntonio Huete Jimenez0 string #!/usr/bin/env\ node Node.js script text executable 15e8af9738SPeter Avalos!:mime application/javascript 16*3b9cdfa3SAntonio Huete Jimenez0 string #!/usr/bin/env\ nodejs Node.js script text executable 17e8af9738SPeter Avalos!:mime application/javascript 186fca56fbSSascha Wildner# Hermes by Facebook https://hermesengine.dev/ 196fca56fbSSascha Wildner# https://github.com/facebook/hermes/blob/master/include/hermes/\ 206fca56fbSSascha Wildner# BCGen/HBC/BytecodeFileFormat.h#L24 216fca56fbSSascha Wildner0 lequad 0x1F1903C103BC1FC6 Hermes JavaScript bytecode 226fca56fbSSascha Wildner>8 lelong x \b, version %d 23*3b9cdfa3SAntonio Huete Jimenez 24*3b9cdfa3SAntonio Huete Jimenez# v8 JavaScript engine bytecode 25*3b9cdfa3SAntonio Huete Jimenez# From: Alexandre Iooss <erdnaxe@crans.org> 26*3b9cdfa3SAntonio Huete Jimenez# URL: https://v8.dev/docs/ignition 27*3b9cdfa3SAntonio Huete Jimenez# Note: used in bytenode and NW.js protected source code 28*3b9cdfa3SAntonio Huete Jimenez# V8 bytecode extraction was added in NodeJS v5.7.0 (V8 4.6.85.31). 29*3b9cdfa3SAntonio Huete Jimenez# Version information is provided for some v8 versions found in NodeJS releases. 30*3b9cdfa3SAntonio Huete Jimenez2 uleshort =0xC0DE 31*3b9cdfa3SAntonio Huete Jimenez>0 ulelong^0xC0DE0000 >0 32*3b9cdfa3SAntonio Huete Jimenez# Reservation table starts at 40 33*3b9cdfa3SAntonio Huete Jimenez>>40 ulelong&0xFFFFFF00 =0x80000000 34*3b9cdfa3SAntonio Huete Jimenez# Stub keys present 35*3b9cdfa3SAntonio Huete Jimenez>>>24 ulelong >0 36*3b9cdfa3SAntonio Huete Jimenez>>>>0 ulelong^0xC0DE0000 x v8 bytecode, external reference table size: %u bytes, 37*3b9cdfa3SAntonio Huete Jimenez>>>>4 ulelong =0xEE4BF478 version 5.1.281.111, 38*3b9cdfa3SAntonio Huete Jimenez>>>>4 ulelong =0xC4A0100C version 5.5.372.43, 39*3b9cdfa3SAntonio Huete Jimenez>>>>8 ulelong x source size: %u bytes, 40*3b9cdfa3SAntonio Huete Jimenez>>>>12 ulelong x cpu features: %#08X, 41*3b9cdfa3SAntonio Huete Jimenez>>>>16 ulelong x flag hash: %#08X, 42*3b9cdfa3SAntonio Huete Jimenez>>>>20 ulelong x %u reservations, 43*3b9cdfa3SAntonio Huete Jimenez>>>>28 ulelong x payload size: %u bytes, 44*3b9cdfa3SAntonio Huete Jimenez>>>>32 ulelong x checksum1: %#08X, 45*3b9cdfa3SAntonio Huete Jimenez>>>>36 ulelong x checksum2: %#08X 46*3b9cdfa3SAntonio Huete Jimenez# No stub keys 47*3b9cdfa3SAntonio Huete Jimenez>>>24 ulelong =0 48*3b9cdfa3SAntonio Huete Jimenez>>>>0 ulelong^0xC0DE0000 x v8 bytecode, external reference table size: %u bytes, 49*3b9cdfa3SAntonio Huete Jimenez>>>>4 ulelong =0x54F0AD81 version 6.2.414.46, 50*3b9cdfa3SAntonio Huete Jimenez>>>>4 ulelong =0X7D1BF182 version 6.2.414.54, 51*3b9cdfa3SAntonio Huete Jimenez>>>>4 ulelong =0x35BA122E version 6.2.414.77, 52*3b9cdfa3SAntonio Huete Jimenez>>>>4 ulelong =0X9319F9C2 version 6.2.414.78, 53*3b9cdfa3SAntonio Huete Jimenez>>>>4 ulelong =0xB1240060 version 6.6.346.32, 54*3b9cdfa3SAntonio Huete Jimenez>>>>4 ulelong =0x2B757060 version 6.7.288.46, 55*3b9cdfa3SAntonio Huete Jimenez>>>>4 ulelong =0x09D147AA version 6.7.288.49, 56*3b9cdfa3SAntonio Huete Jimenez>>>>4 ulelong =0xF4D4F48A version 6.8.275.32, 57*3b9cdfa3SAntonio Huete Jimenez>>>>4 ulelong =0xD3961326 version 7.0.276.38, 58*3b9cdfa3SAntonio Huete Jimenez>>>>8 ulelong x source size: %u bytes, 59*3b9cdfa3SAntonio Huete Jimenez>>>>12 ulelong x cpu features: %#08X, 60*3b9cdfa3SAntonio Huete Jimenez>>>>16 ulelong x flag hash: %#08X, 61*3b9cdfa3SAntonio Huete Jimenez>>>>20 ulelong x %u reservations, 62*3b9cdfa3SAntonio Huete Jimenez>>>>28 ulelong x payload size: %u bytes, 63*3b9cdfa3SAntonio Huete Jimenez>>>>32 ulelong x checksum1: %#08X, 64*3b9cdfa3SAntonio Huete Jimenez>>>>36 ulelong x checksum2: %#08X 65*3b9cdfa3SAntonio Huete Jimenez# Reservation table starts at 32 66*3b9cdfa3SAntonio Huete Jimenez>>32 ulelong&0xFFFFFF00 =0x80000000 67*3b9cdfa3SAntonio Huete Jimenez# Second checksum present 68*3b9cdfa3SAntonio Huete Jimenez>>>28 ulelong >0 69*3b9cdfa3SAntonio Huete Jimenez>>>>0 ulelong^0xC0DE0000 x v8 bytecode, external reference table size: %u bytes, 70*3b9cdfa3SAntonio Huete Jimenez>>>>4 ulelong =0x21DDF627 version 7.4.288.21, 71*3b9cdfa3SAntonio Huete Jimenez>>>>4 ulelong =0x1FC9FE84 version 7.4.288.27, 72*3b9cdfa3SAntonio Huete Jimenez>>>>4 ulelong =0x60A99E8B version 7.5.288.22, 73*3b9cdfa3SAntonio Huete Jimenez>>>>4 ulelong =0x4F665E90 version 7.6.303.29, 74*3b9cdfa3SAntonio Huete Jimenez>>>>4 ulelong =0xC7ACFCDE version 7.7.299.11, 75*3b9cdfa3SAntonio Huete Jimenez>>>>4 ulelong =0x7F641D8F version 7.7.299.13, 76*3b9cdfa3SAntonio Huete Jimenez>>>>4 ulelong =0xFD9A4F2E version 7.8.279.17, 77*3b9cdfa3SAntonio Huete Jimenez>>>>4 ulelong =0x3A845324 version 7.8.279.23, 78*3b9cdfa3SAntonio Huete Jimenez>>>>4 ulelong =0xFF52FEAF version 7.9.317.25, 79*3b9cdfa3SAntonio Huete Jimenez>>>>8 ulelong x source size: %u bytes, 80*3b9cdfa3SAntonio Huete Jimenez>>>>12 ulelong x flag hash: %#08X, 81*3b9cdfa3SAntonio Huete Jimenez>>>>16 ulelong x %u reservations, 82*3b9cdfa3SAntonio Huete Jimenez>>>>20 ulelong x payload size: %u bytes, 83*3b9cdfa3SAntonio Huete Jimenez>>>>24 ulelong x checksum1: %#08X, 84*3b9cdfa3SAntonio Huete Jimenez>>>>28 ulelong x checksum2: %#08X 85*3b9cdfa3SAntonio Huete Jimenez# No second checksum 86*3b9cdfa3SAntonio Huete Jimenez>>>28 ulelong =0 87*3b9cdfa3SAntonio Huete Jimenez>>>>0 ulelong^0xC0DE0000 x v8 bytecode, external reference table size: %u bytes, 88*3b9cdfa3SAntonio Huete Jimenez>>>>4 ulelong =0x8725E0F8 version 8.1.307.30, 89*3b9cdfa3SAntonio Huete Jimenez>>>>4 ulelong =0x09ED1289 version 8.1.307.31, 90*3b9cdfa3SAntonio Huete Jimenez>>>>4 ulelong =0xA5728C87 version 8.3.110.9, 91*3b9cdfa3SAntonio Huete Jimenez>>>>4 ulelong =0xB45C5D30 version 8.4.371.23, 92*3b9cdfa3SAntonio Huete Jimenez>>>>4 ulelong =0xED9C278B version 8.4.371.19, 93*3b9cdfa3SAntonio Huete Jimenez>>>>4 ulelong =0xD27BFF42 version 8.6.395.16, 94*3b9cdfa3SAntonio Huete Jimenez>>>>8 ulelong x source size: %u bytes, 95*3b9cdfa3SAntonio Huete Jimenez>>>>12 ulelong x flag hash: %#08X, 96*3b9cdfa3SAntonio Huete Jimenez>>>>16 ulelong x %u reservations, 97*3b9cdfa3SAntonio Huete Jimenez>>>>20 ulelong x payload size: %u bytes, 98*3b9cdfa3SAntonio Huete Jimenez>>>>24 ulelong x payload checksum: %#08X 99*3b9cdfa3SAntonio Huete Jimenez# No reservation table and code starts at 24 100*3b9cdfa3SAntonio Huete Jimenez>>32 ulelong =0 101*3b9cdfa3SAntonio Huete Jimenez>>>0 ulelong^0xC0DE0000 x v8 bytecode, external reference table size: %u bytes, 102*3b9cdfa3SAntonio Huete Jimenez>>>4 ulelong =0x9A6F0B0F version 9.0.257.17, 103*3b9cdfa3SAntonio Huete Jimenez>>>4 ulelong =0x271D5D1E version 9.0.257.24, 104*3b9cdfa3SAntonio Huete Jimenez>>>4 ulelong =0x4EEA75DF version 9.0.257.25, 105*3b9cdfa3SAntonio Huete Jimenez>>>4 ulelong =0x80809479 version 9.1.269.36, 106*3b9cdfa3SAntonio Huete Jimenez>>>4 ulelong =0x55C46F65 version 9.1.269.38, 107*3b9cdfa3SAntonio Huete Jimenez>>>4 ulelong =0x8A9C758A version 9.2.230.21, 108*3b9cdfa3SAntonio Huete Jimenez>>>4 ulelong =0x9712F0E1 version 9.3.345.16, 109*3b9cdfa3SAntonio Huete Jimenez>>>4 ulelong =0x29593715 version 9.4.146.19, 110*3b9cdfa3SAntonio Huete Jimenez>>>4 ulelong =0xCD991825 version 9.4.146.24, 111*3b9cdfa3SAntonio Huete Jimenez>>>4 ulelong =0xACDD64EE version 9.4.146.26, 112*3b9cdfa3SAntonio Huete Jimenez>>>4 ulelong =0xC96B4CD5 version 9.5.172.21, 113*3b9cdfa3SAntonio Huete Jimenez>>>4 ulelong =0xBCCE4578 version 9.5.172.25, 114*3b9cdfa3SAntonio Huete Jimenez>>>4 ulelong =0xA2EEA077 version 9.6.180.15, 115*3b9cdfa3SAntonio Huete Jimenez>>>4 ulelong =0xFD350011 version 10.1.124.8, 116*3b9cdfa3SAntonio Huete Jimenez>>>4 ulelong =0xBEF4028F version 10.2.154.13, 117*3b9cdfa3SAntonio Huete Jimenez>>>4 ulelong =0xAF632352 version 10.2.154.4, 118*3b9cdfa3SAntonio Huete Jimenez>>>8 ulelong x source size: %u bytes, 119*3b9cdfa3SAntonio Huete Jimenez>>>12 ulelong x flag hash: %#08X, 120*3b9cdfa3SAntonio Huete Jimenez>>>16 ulelong x payload size: %u bytes, 121*3b9cdfa3SAntonio Huete Jimenez>>>20 ulelong x payload checksum: %#08X 122