xref: /dflybsd-src/contrib/file/magic/Magdir/javascript (revision 739f0ef867128a933e021db3d831e906fcafd825)
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